HDU-1052
田忌赛马
添加链接描述
#include<stdio.h>
int main (void)
{
int n,i,j,temp,tian[1000],wang[1000],tmax,tmin,wmax,wmin,qian;
while(~scanf("%d",&n)&&n!=0){
for(i=0;i<n;i++){//输入并降序排序
scanf("%d",&tian[i]);
for(j=0;j<i;j++){
if(tian[i]>tian[j]){
temp=tian[i];
tian[i]=tian[j];
tian[j]=temp;
}
}
}
for(i=0;i<n;i++){
scanf("%d",&wang[i]);
for(j=0;j<i;j++){
if(wang[i]>wang[j]){
temp=wang[i];
wang[i]=wang[j];
wang[j]=temp;
}
}
}
tmax=0;
tmin=n-1;
wmax=0;
wmin=n-1;
qian=0;
while(tmax<=tmin){
if(tian[tmax]>wang[wmax]){//若最快马相比田忌赢
tmax++;
wmax++;
qian+=200;
}
else if(tian[tmax]<wang[wmax]){//田忌输,则用最慢马换掉王的最快马
tmin--;
wmax++;
qian-=200;
}
else{//平局,比最慢马
if(tian[tmin]>wang[wmin]){//慢马能赢
tmin--;
wmin--;
qian+=200;
}
else {//慢马不能赢,就去换掉王最快的马
if(tian[tmin]<wang[wmax]) qian-=200;
tmin--;
wmax++;
}
}
}
printf("%d\n",qian);
}
return 0;
}