你一定听过田忌赛马的故事吧?
如果3匹马变成1000匹,齐王仍然让他的马按从优到劣的顺序出赛,田忌可以按任意顺序选择他的赛马出赛。赢一局,田忌可以得到200两银子,输一局,田忌就要输掉200两银子,平局的话不输不赢。
请问田忌最多能赢多少银子?
时间限制:5000
内存限制:65536
输入
输入包含多组测试数据. 每组测试数据的第一行是一个整数n(1<=n<=1000),表示田忌和齐王都拥有n匹马。接下来一行是n个整数,表示田忌的马的速度,下一行也是n个整数,表示齐王的马的速度。 输入的最后以一个0表示结束。
输出
对每组数据,输出一个整数,表示田忌至多可以赢多少银子,如果田忌赢不了,就输出一个负数,表示田忌最少要输多少银子。
样例输入
3
92 83 71
95 87 74
2
20 20
20 20
2
20 19
22 18
0
样例输出
200
0
0
#include<bits/stdc++.h>
using namespace std;
int a;
int aa[1005],bb[1005];
int hhh()
{
int s=0,x=0,w=0;
for(int i=0;i<a;i++)
{
for(int j=i+w;j<a;j++)
{
if(aa[i]>bb[j])
{
x++;
w++;
break;
}
else if(aa[i]<bb[j])
{
s++;
}
}
}
return x-s;
}
bool cmpl(int x,int y)
{
return x>y;
}
int main()
{
while(1)
{
cin>>a;
if(a==0)break;
for(int i=0;i<a;i++)
{
cin>>aa[i];
}
for(int i=0;i<a;i++)
{
cin>>bb[i];
}
sort(aa,aa+a,cmpl);
sort(bb,bb+a,cmpl);
cout<<hhh()*200<<endl;
}
return 0;
}