贪心的HEIHEI
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
最近有些赛马比赛,HEIHEI去当了裁判,比赛规定输的一方要把自己的马匹都给最后胜利者的一方,还有一个特殊的规定就是如果双方的赢的局数一样打成了平局,则裁判赢,双方把马匹都给裁判。比赛规则为双方马匹的能力值大的一方赢这一局,赢的总局数多的一方是最后的胜利者。保证每匹马的能力值都不相同。HEIHEI比较贪心,想安排一下双方马匹的出场顺序以便自己赢得所有马匹,但是HEIHEI比较笨,不知道怎么安排,现在就请你写一个程序来帮帮贪心的HEIHEI吧。
-
输入
-
输入有多组测试数据。
输入第一行有一个整数n表示有n匹马(1<=n<=100)。
第二行表示其中一方n马匹的能力值。
第三行表示另外一方n匹马的能力值。
输出
- 如果贪心的HEIHEI可以赢得所有的马匹就输出“YES”,否则输出“NO”。 样例输入
-
4 1 2 7 8 3 4 5 6 2 1 2 3 4
样例输出
-
YES NO
来源
- [中山大学内部选拔赛]改编 上传者
-
分析:
1 2 3 4
5 6 7 8
1 2 对 6 7
3 4 对 7 8
如果赢得值为N的一半 就是平手啦
嘿嘿的他妈就笑了...
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int ac[1000],fun[1000]; int main() { int n,i; while(~scanf("%d",&n)) { memset(ac,0,sizeof(ac)); memset(fun,0,sizeof(fun)); for(i=0; i<n; i++) scanf("%d",&ac[i]); for(i=0; i<n; i++) scanf("%d",&fun[i]); sort(ac,ac+n); sort(fun,fun+n); if(n%2) printf("NO\n"); else { int cnt=0; for(i=0; i<n/2; i++) if(ac[i]>fun[n/2+i]) cnt++; for(i=0; i<n/2; i++) if(ac[n/2+i]>fun[i]) cnt++; if(n/2==cnt) printf("YES\n"); else printf("NO\n"); } } return 0; }
-
输入有多组测试数据。