PTA田忌赛马
一、题目描述

二、解题思路
我们把tj的马和qw的马从小到大排个序
情况1:如果tj最大的马比qw最大的马快,则答案加1
情况2:如果tj最慢的马比qw最慢的马快,则答案加1
情况3:如果tj最慢的马比qw最快的马慢,则答案减1(也就是用最慢的马去耗qw最快的马)
情况4:如果tj最慢的马和qw最快的马一样快,且不符合以上三种情况,那么肯定这2n匹马的速度相同,故不需要对答案做操作
三、代码实现
1 #include "bits/stdc++.h" 2 using namespace std; 3 int tj[1010]; 4 int qw[1010]; 5 int main() 6 { 7 int n; 8 while(cin >> n){ 9 if(n == 0) 10 break; 11 for(int i = 1;i <= n;i++) 12 cin >> tj[i]; 13 for(int i = 1;i <= n;i++) 14 cin >> qw[i]; 15 sort(tj + 1,tj + 1 + n); 16 sort(qw + 1,qw + 1 + n); 17 int ans = 0; 18 int fa,fb,la,lb; 19 fa = fb = 1; 20 la = lb = n; 21 for(int i = 1;i <= n;i++){ 22 if(tj[fa] > qw[fb]){ 23 ans++; 24 fa++,fb++; 25 } 26 else if(tj[la] > qw[lb]){ 27 ans++; 28 la--,lb--; 29 } 30 else { 31 if(tj[fa] < qw[lb]){ 32 ans--; 33 fa++; 34 lb--; 35 } 36 } 37 } 38 cout << ans * 200 << endl; 39 } 40 return 0; 41 }
本文来自博客园,作者:{scanner},转载请注明原文链接:{https://home.cnblogs.com/u/scannerkk/}

浙公网安备 33010602011771号