题意:
m个小组,每个小组n支队伍进行比赛,任意两支队伍之间有一场比赛
一场比赛里赢得+2分输的+0分,打平的话每队+1分
先给出每支队伍的得分,判断这些得分是否满足小组比赛的条件
思路:
首先总分一定是m*(m-1),然后每x个队伍的分数之和一定不小于x*(x-1)。
得分从小到大排序,对于当前i,与之前的i-1支队伍比赛完之后,所有的比赛的总得分至少是(i-1)*i
每场比赛都产生2分,打了(i-1)*i/2场,也就是i*(i-1)分
最后n场的总分为n*(n-1)
#include<bits/stdc++.h>
using namespace std;
#define LL long long
int a[20005];
int main()
{ int n, x; while(cin >> n) { while(n--) { cin>>x; for(int i=1; i <= x; i++) cin>>a[i]; sort(a+1, a+x+1); LL sum = 0;bool flag = false; for(int i=1; i <= x; i++) { sum += a[i]; if(sum < i*(i-1)) { flag = true; break; } } if(x*(x-1) != sum) flag = true; if(flag) puts("F"); else puts("T"); } } return 0;
}