在某些情况下,我缺少什么或任何极端情况下,获取时间限制超出错误

时间:2019-06-02 20:22:26

标签: c++11

选举处于不同阶段和状态的政党

TestCase 1示例

输入

phase = 3

P [0] = 2 P [1] = 1 P [2] = 0

state = 2

S [0] = 1 S [1] = 2

类似的另一个例子:

3 3

3 2 1

1 2 2

输出

是 否

说明

测试案例1:

按照理论,要组建政府,政党应在第一阶段赢得2个席位,在第二阶段赢得1个席位,在最后阶段赢得0个席位。党也需要遵循各州的获胜次数。在第一州的席位应该有一个胜利,在第二州的席位应该有2胜利。

我的尝试代码:

/*Enter your code here. Read input from STDIN. Print your output to STDOUT*/
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int T;
    cin>>T;
    for(int i=0;i<T;i++){
        int P,S;
        cin>>P;
        cin>>S;

        int C[P],s1=0;
        int R[S],s2=0;

        for(int k=0;k<P;k++){cin>>C[k]; s1+=C[k];}
        for(int k=0;k<S;k++){cin>>R[k];s2+=R[k];}

        if((s1==s2)){

        int A[P][S];
        for(int k=0;k<P;k++)for(int j=0;j<S;j++)A[k][j]=0;

        for(int k=0;k<P;k++)
        {int c=C[k],s=0;
        for(int j=0;j<S,s<c;j++){ s++; A[k][j]=1;}
        }

        for(int k=0;k<P;k++)sort(A[k],A[k]+S);


        int sum[S]={0};
        for(int k=0;k<S;k++)for(int j=0;j<P;j++){sum[k]+=A[j][k];}



        int c1=0,c2=0;
        for(int j=0;j<S;j++){if(sum[j]==R[j])c1++;}

        if(c1==S)cout<<"YES"<<endl;
            else cout<<"NO"<<endl;
        }
        else cout<<"NO"<<endl;

    }
}```



TC0 i am passing but for some case its giving TLE

0 个答案:

没有答案