标签:style http io color ar os sp for 数据
3 92 83 71 95 87 74 2 20 20 20 20 2 20 19 22 18
200 0 0
题目大意:有多组测试数据,对于每组测试数据第一行输入一个数字n,表示有n匹马参与比赛,接下来输入两行数据,第一行为田忌每匹马的速度,第二行为齐王每匹马的速度,输出一行表示田忌赢的钱数(赢一次的200,输一场也是200)
#include<stdio.h>
#include<stdlib.h>
int tian[1005],king[1005];
//从大到小排序
int com(const void *a,const void *b)
{
return (*(int *)b - *(int *)a);
}
//读入每匹马的速度
void read(int n)
{
int i;
for(i=0;i<n;i++){
scanf("%d",&tian[i]);
}
for(i=0;i<n;i++){
scanf("%d",&king[i]);
}
}
//求的赢的钱数
int match(int n)
{
qsort(tian,n,sizeof(tian[0]),com);
qsort(king,n,sizeof(king[0]),com);
int tl,tf,kl,kf,win,lose;
tl = kl = n-1;
tf = kf = 0;
win = lose = 0;
while(tf<=tl)//遍历
{
if(tian[tf]>king[kf]){//若田忌最快的马比齐王最快的马快,win一场
win ++;tf ++; kf ++;
}
else if(tian[tl] > king[kl]){//若田忌最慢的马比齐王最慢的马快,win一场
win ++;tl--;kl--;
}
else
{
if(tian[tl]<king[kf])//若田忌最慢的马比齐王最快的马慢,lose一场
lose ++;
tl--;kf++;
}
}
return (win-lose)*200;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
read(n);
printf("%d\n",match(n));
}
return 0;
}标签:style http io color ar os sp for 数据
原文地址:http://blog.csdn.net/u012437355/article/details/40918543