Problem Description
A mysterious country will hold a football world championships---Abnormal Cup, attracting football teams and fans from all around the world. This country is so mysterious that none of the information of the games will be open to the public till the end of all the matches. And finally only the score of each team will be announced.
  
  At the first phase of
the championships, teams are divided into M

groups using the single round robin rule where one and only one game will be
played between each pair of teams within each group. The winner of a game scores
2 points, the loser scores 0, when the game is tied both score 1 point. The
schedule of these games are unknown, only the scores of each team in each group
are available.
  
  When those games finished, some insider revealed that
there were some false scores in some groups. This has aroused great concern
among the pubic, so the the Association of Credit Management (ACM) asks you to
judge which groups' scores must be false.

 
Input
Multiple test cases, process till end of the
input.
  
  For each case, the first line contains a positive integers
M

, which is the number of groups.
  The i

-th of the next M

lines begins with a positive integer Bi

representing the number of teams in the i

-th group, followed by Bi

nonnegative integers representing the score of each team in this
group.


number of test cases <= 10
M<= 100
B[i]<=
20000
score of each team <= 20000

 
Output
For each test case, output M

lines. Output ``F" (without quotes) if the scores in the i-th group must be
false, output ``T" (without quotes) otherwise. See samples for detail.

 
Sample Input
2
3 0 5 1
2 1 1
 
Sample Output
F
T
 
 
 

题意:

m个小组,每个小组n支队伍进行比赛,任意两支队伍之间有一场比赛

一场比赛里赢得+2分输的+0分,打平的话每队+1

先给出每支队伍的得分,判断这些得分是否满足小组比赛的条件

思路:根据这个比赛规则,我们可以发现,每场比赛都有2个积分会出去。

那么问题就很好解决了,先要给那些

得分从小到大排序,对于当前i,与之前的i-1支队伍比赛完之后,所有的比赛的总得分至少是(i-1)*i(因为这i只队伍还要和第i+1~n的队伍打比赛,也可能获得分数

#include<bits/stdc++.h>
using namespace std;
const int maxn = +;
int n,a[maxn];
int main()
{
int T;
while(scanf("%d",&T)!=EOF)
{
while(T--)
{
int res = ;
scanf("%d",&n);
for(int i = ;i<=n;i++)
scanf("%d",&a[i]),res+=a[i];
sort(a+,a++n);
int sum = ;
int flag = ;
for(int i = ;i<=n;i++)
{
sum+=a[i];
if(sum<i*(i-))
{
flag=;
break;
}
}
if(res!=n*(n-))
flag=;
if(flag)
printf("F\n");
else
printf("T\n");
}
}
}

);

最后只要算出比赛的场次*2==总分就可以。

一共有n组,那么任意两只队伍要比赛的话排列组合共有Cn^2种情况,即n*(n-1)/2;

最新文章

  1. 事务日志已满,原因为“ACTIVE_TRANSACTION”
  2. liToSpan
  3. javase基础复习攻略《三》
  4. java汉化
  5. npm install -g 全局安装总是出现permission权限问题的解决方案
  6. java提高篇---HashSet
  7. C语言基础--switch
  8. Mes首检确认统计的存储过程
  9. HTML+CSS学习笔记 (15) - css样式设置小技巧
  10. Delphi通过IE窗口句柄获取网页接口(IWebBrowser2) good
  11. 基于visual Studio2013解决C语言竞赛题之0411公约数和公倍数
  12. CentOS7 emacs安装
  13. 简单了解Hibernate
  14. MySQL事务隔离级别的实现原理
  15. ●BZOJ 2752 [HAOI2012]高速公路(road)
  16. Android图表库MPAndroidChart(一)——了解他的本质,方能得心应手
  17. 你所不知道的 CSS 阴影技巧与细节
  18. echarts 折线图点击高亮
  19. testng优化:失败重跑,extentReport+appium用例失败截图,测试报告发邮件
  20. EasyRadius 动态域名DDNS设置工具,支持WayOS三代,完美解决近段时间3322和每步不稳定问题

热门文章

  1. ios断点续传:NSURLSession和NSURLSessionDataTask实现
  2. 【HDOJ 1272】小希的迷宫(并查集+无环图)
  3. JAVA | 学生选课系统
  4. Ansible自动化配置详解
  5. kali linux 安装谷歌浏览器
  6. sql server,mysql,oracle平时用法的区别
  7. 【Commare中关于理论范畴和技术常用的技术术语】
  8. Java小功能大杂烩
  9. Nodejs 使用 addons 调用c++ 初体验(一)
  10. Hive(2)-Hive的安装,使用Mysql替换derby,以及一丢丢基本的HQL