#include
void sort(int *nums,int len)
{
int i;
for (i=0;i
{
int o;
for (o=i+1;o
{
if (nums[i]>nums[o])
{
int tem;
tem=nums[i];
nums[i]=nums[o];
nums[o]=tem;
}
}
}
}
int main()
{
int num_horse;
int yuan[1000],wang[1000];
while (scanf("%d",&num_horse)&&num_horse)
{
int i,num_win=0,can_win,num_horsew;
can_win=num_horse/2+1; //能赢条件
for(i=0;i
scanf("%d",&yuan[i]);
for (i=0;i
scanf("%d",&wang[i]);
sort(yuan,num_horse); //对两边的马升序排序
sort(wang,num_horse);
num_horsew=num_horse; //num_horsew为对手剩下的马
for (i=0;i
{
int o;
for (o=0;o
{
if (!wang[o]) //如果这匹马已经比过了continue
continue;
if (yuan[i]>wang[o]) //如果渊子赢了
{
num_win++;
wang[o]=0;
break;
}
}
if (o==num_horsew) //如果比较过了都赢不了,就把对手最强的马拉下
{
num_horsew--;
wang[num_horsew]=0;
}
}
if (num_win>=can_win)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
解题思路:
注意事项:
参考代码: