思路很巧妙的一道贪心题目,总体原则是赢不了你我就尽量拖你的好马下水。
题目地址:点击打开链接
#include <cstdio>
#include <algorithm>
#include <iostream>
using namespace std ;
int tj[1005],king[1005] ;
int n ; //马匹数目
int main()
{
while(scanf("%d",&n)!=EOF)
{
for(int i = 0 ; i <n ;i++)
{
scanf("%d",&tj[i]) ;
}
for(int j = 0 ; j<n ;j++)
{
scanf("%d",&king[j]) ;
}
sort(tj,tj+n) ;
sort(king,king+n) ;
int res = 0 ;
int cnt = 0 ;
int tj_min,king_min,tj_max,king_max ;
tj_min = king_min = 0 ;
tj_max = king_max = n-1 ;
while((cnt++)<n)
{
if(tj[tj_max]>king[king_max])
{
res+=200 ;
tj_max-- ;
king_max-- ;
}
else if(tj[tj_max]<king[king_max])
{
res-=200 ;
tj_min++ ;
king_max-- ;
}
else
{
if(tj[tj_min]>king[king_min])
{
res+=200 ;
tj_min++ ;
king_min++ ;
}
else
{
if(tj[tj_min]<king[king_max])
res-=200 ;
tj_min++ ;
king_max-- ;
}
}
}
printf("%d\n",res) ;
}
return 0 ;
}