HDU 5873Football Games

来源:互联网 发布:移动蜂窝数据是什么 编辑:程序博客网 时间:2024/05/22 10:42

题意:

给出多个队伍比赛,询问是否合法

思路:

对于每个i位置来说,排序后,他必定前缀和大于i*i-i,因为如果在前i个中,必定也满足两两比赛得分的关系。

这题输入是个坑啊。。直接输入T,不加while(cin>>t)就wa。。。之前多组样例都是直接走T。 

#include <stdio.h>#include <algorithm>#include <cstring>#include <iostream>using namespace std;const int N=200005;typedef long long ll;ll a[N],b[N];int main(){    ios::sync_with_stdio(false);    int t;    cin>>t;    while(t--)    {        int n;        cin>>n;        ll sum=0;         for(int i=1;i<=n;i++)        {            cin>>a[i],sum+=a[i];         }        int ok=0;        if(n*n-n!=sum)        {            ok=1;            printf("F\n");            continue;        }        sort(a+1,a+1+n);        ll res=0;        for(int i=1;i<=n;i++)        {            res+=a[i];            if(res<i*(i-1))            {                printf("F\n");                                break;            }        }        if(!ok)        printf("T\n");    }}

原创粉丝点击