田忌赛马的模拟,但是这个题思路不清晰很容易WA。参考http://blog.sina.com.cn/s/blog_76102a690100q0gr.html分析,写的代码。
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#define MAXN 1010
using namespace std;
int main()
{
//freopen("in.txt","r",stdin);
int n,tian[MAXN],wang[MAXN],win,lose,ear,team;
while(cin>>n&&n)
{
for(int i=1; i<=n; i++)
cin>>tian[i];
for(int i=1; i<=n; i++)
cin>>wang[i];
sort(tian+1,tian+n+1);
sort(wang+1,wang+n+1);
win=ear=team=0;
int tf=1,tr=n,wf=1,wr=n;
for(int i=1; i<=n; i++)
{
if(tian[tf]>wang[wr])
{
win+=n-i+1;
break;
}
else if(tian[tr]>wang[wr])
{
win++;
tr--;
wr--;
}
else if(tian[tr]<wang[wr])
{
tf++;
wr--;
}
else
{
if(tian[tf]>wang[wf])
{
tf++;
wf++;
win++;
}
else if(tian[tf]<wang[wf])
{
tf++;
wr--;
}
else
{
if(tian[tf]==wang[wr])
{
ear+=n-i+1;
break;
}
else
{
tf++;
wr--;
}
}
}
}
//cout<<win<<endl;
lose=n-win-ear;
cout<<200*(win-lose)<<endl;
}
return 0;
}