#include <iostream>
#include<map>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
int a[10010];
int b[10010];
int cmp(int a,int b)
{
return a>b;
}
int main()
{
int n;
while(scanf("%d",&n)&&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,cmp);
sort(b,b+n,cmp);
int win=0,lose=0;
int n1=n-1;
n=n-1;
for(int i=0,j=0; i<=n1&&j<=n;)
{
if(a[i]>b[j]) //田忌最快的马和齐王最快的马比较,田忌的胜利
{
win++;
j++;
i++;
}
else if(a[i]<b[j]) //田忌最快的马和齐王最快的马比较,齐王的胜利
{
lose++;
n1--;
j++;
}
else //田忌最快的马和齐王最快的马比较,一样
{
if(a[n1]>b[n]) //比较两个人最慢的马 ,田忌的快
{
n1--;
n--;
win++;
}
else if(a[n1]<b[n]) //比较两个人最慢的马 ,齐王的快
{
j++;
n1--;
lose++;
}
else //比较两个人最慢的马 ,一样快
{
if(a[n1]<b[j]) //这里是重点看解释1。。。
{
n1--;
j++;
lose++;
}
else
{
i++;
j++;
}
}
}
}
printf("%d\n",(win-lose)*200);
}
return 0;
}
解释1:举个例子
3
28 20 16
28 21 16
如果前后都相同并且后面的小于前面的那么就优先发挥快马的优势