题意:和古代的田忌赛马一样,只是可以有多匹马;
大体思路用贪心,主要: 尽量多赢几场
这就有两点:
1.赢的时候尽量赢差不多的对手
2.实在赢不了,就去消耗对方高手
#include <iostream>
#include <algorithm>
using namespace std;
int t[10000];
int k[10000];
int main(void){
int n;
while(cin>>n)
{
for(int i = 0; i < n; ++i)
{
cin>>t[i];
}
for(int i = 0; i < n; ++i)
{
cin>>k[i];
}
sort(t, t + n);
sort(k, k + n);
int tl = 0, tr = n - 1;
int kr = n - 1, kl = 0;
int w = 0;
int people = 0;
while(tl <= tr)
{
if(t[tr] > k[kr]) //先用最好的和对方最好的比
{
tr--;
kr--;
w++;
}
else if(t[tl] > k[kl]) //最好的比不过就比最差的
{
w++;
tl++;
kl++;
}
else if(t[tl] < k[kr]) //最差的比不过就可以放弃最小的,去消耗对方的最大的
{
w--;
tl++;
kr--;
}
else //平局
{
tl++;
kr--;
}
}
cout<<w * 200<<endl;
}
return 0;
}