1339: 排队
时间限制: 1 秒 内存限制: 128 MB | 提交: 230 解决: 46
题目描述
学校要进行合唱比赛,需要排一个队形。一共2n个人
队形要求:两排,每排n人,且前排任意一个的人的身高比后排的任意一个人的身高都低。
问是否排成这种队形,如果可以输出“YES”,否则输出“NO”
队形要求:两排,每排n人,且前排任意一个的人的身高比后排的任意一个人的身高都低。
问是否排成这种队形,如果可以输出“YES”,否则输出“NO”
输入
第一行:T,测试实例个数。
第二行:一个整数n。 (1≤n≤1000)
第三行:2n个整数,a1,a2,...a2n。分别代表每个人的身高。 (1≤ai≤1000)
输出
“YES”或“NO”。
样例输入
2
2
1 2 3 4
1
1 1
样例输出
YES
NO
思路 : 从小到大排序 , 判断 第一排身高最高的人 num[n] 和 第二排 身高最低的人 num[n+1] 的大小,
如果想等 则输出 NO 否则输出 YES
#include <cstdio> #include <iostream> #include <algorithm> #include <cstring> using namespace std ; #define maxn 2000 int num[maxn] ; int main(){ int T ; int n ; cin >> T ; while(T--){ cin>>n ; for(int i=1 ; i<=2*n ; i++){ cin>>num[i] ; } sort(num + 1 , num + 1 + 2* n ) ; if(num[n] == num[n+1]){ printf("NO ") ; } else { printf("YES ") ; } } return 0 ; }