题意:田忌赛马
思路:把田忌的马和国王的马分别按从大到小和从小到达的顺序排序。
1.田忌可能赢的局数1-n
2.田忌赢马的组合只能是田忌的前k匹马与国王的前k匹马,而且是田忌的第一匹马和国王的第k匹马比赛。
代码:
#include<iostream>
#include<algorithm>
#include<string.h>
#define maxn 1005
using namespace std;
int t[maxn];
int kk[maxn];
bool cmp(int x,int y)
{
return x>y;
}
int main()
{
int n;
while(cin>>n)
{
if(n==0) break;
for(int i=0;i<n;i++)
cin>>t[i];
for(int j=0;j<n;j++)
cin>>kk[j];
sort(kk,kk+n);
sort(t,t+n,cmp);
int max=-1000000,ans;
for(int j=0;j<=n;j++)
{
ans=0;
for(int i=0;i<j;i++)
{
if(t[i]>kk[j-i-1])
ans+=200;
else if(t[i]<kk[j-i-1])
ans-=200;
}
ans-=200*(n-j);
if(ans>max)
max=ans;
}
cout<<max<<endl;
}
return 0;
}