题意:田忌赛马
题解:首先比较田忌和齐王最快的马
1.如果田忌最快的马大于齐王最快的马,那么就赢一局
2.如果田忌最快的马小于齐王最快的马,那么田忌最慢的马和齐王最快的马,输一局,反正都要输,不如输个烂马
3.如果田忌最快的马和齐王最快的马相同,那么看最慢的马两者的比较 ,如果田忌最慢的马小于齐王最慢的马,反正都要输一局,不如输个烂马,如果田忌最慢的马和齐王最慢的马相同,那么就最快的马比一场最慢的马比一场,就是两场平局。
附上代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn=1050;
int n,a[maxn],b[maxn];
int main()
{
while(scanf("%d",&n)!=EOF&&n){
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++){
scanf("%d",&b[i]);
}
sort(a,a+n);
sort(b,b+n);
int tl=0,tr=n-1,ql=0,qr=n-1,sum=0;
while(tl<=tr){
if(a[tr]>b[qr]){
sum+=200;
qr--;
tr--;
}else if(a[tr]<b[qr]){
sum-=200;
qr--;
tl++;
}else{
if(a[tl]>b[ql]){
sum+=200;
tl++;
ql++;
}else{
if(a[tl]<b[qr]){
sum-=200;
tl++;
qr--;
}else{
tl++;
ql++;
qr--;
tr--;
}
}
}
}
printf("%d\n",sum);
}
return 0;
}