题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5873
#include<cstdio>
/*
得分从小到大排序,对于当前i,与之前的i-1支队伍比赛完之后,所有的比赛的总得分至少是(i-1)*i
每场比赛都产生2分,打了(i-1)*i/2场,也就是i*(i-1)分
最后n场的总分为n*(n-1)
*/
#include<iostream>
#define ll long long
#include<algorithm>
using namespace std;
int main() {
int t,n,a[20005];
while(scanf("%d",&t)!=EOF) {
while(t--) {
scanf("%d",&n);
ll sum=0;
int flag=0;
for(int i=1; i<=n; i++)
scanf("%d",&a[i]);
sort(a+1,a+n+1);
for(int i=0; i<=n; i++) {
sum+=a[i];
if(sum<1ll*i*(i-1)) {
flag=1;
break;
}
}
if(sum!=1ll*n*(n-1))
flag=1;
if(flag==0)
printf("T\n");
if(flag==1)
printf("F\n");
}
}
}