#include<stdio.h>
int main()
{
int N,n;
int m,win=0;
int a[1010];
int b[1010];
while((scanf("%d",&N))&&(N!=0)){
win=0;
n=N;
if(N!=0){
for(int i=1;i<=N;i++){
scanf("%d",&a[i]);//读入存储渊子马速度的数据
}
for(int i=1;i<=N;i++){
scanf("%d",&b[i]);//读入存储对手马速度的数据
}
for(int i=0;i<=N-1;i++){
for(int j=0;j<=N-1;j++){
if(a[j]>a[j+1]) {
m=a[j+1];
a[j+1]=a[j];
a[j]=m;
}//冒泡排序 将渊子马的数据从小到大排列
}
}
for(int i=0;i<=N-1;i++){
for(int j=0;j<=N-1;j++){
if(b[j]>b[j+1]) {
m=b[j+1];
b[j+1]=b[j];
b[j]=m;
}//冒泡排序 将对手马的数据从小到大排列
}
}
for(int i=N;i>0;i--){
for(int j=n;j>0;j--){
if(a[i]>b[j]){
win++;
n=j-1;
break;
}//跟找零钱的贪心算法类似,尽可能让每一匹速度大的马发挥它最大的实力(赢对手一丢丢)
}
}
if(win>(N-win)) printf("YES\n");
else printf("NO\n");//对比获胜场次
}
}
return 0;
}
刚开始写题,之前接触过冒泡,做题期间又了解了一点点贪心算法的产物。
希望有大佬路过能指教一下 orz