Выборы для партии в другой фазе и состояниях
Образец TestCase 1
Input
фаза = 3
P [0] = 2 P [1] = 1 P [2] = 0
состояние = 2
S [0] = 1 S [1] = 2
аналогично другой пример:
3 3
3 2 1
1 2 2
выход
YES
NO
Объяснение
Контрольный пример 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