Submission #786827

#TimeUsernameProblemLanguageResultExecution timeMemory
786827BulaKpart (eJOI21_kpart)C++17
0 / 100
431 ms100472 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define int ll const ll mod=1e9+7; int dp[1001][50001]; main(){ int tt; cin>>tt; while(tt--){ int n; cin>>n; vector<int> v(n+1),pref(n+1); int s=0; for(int i=1;i<=n;i++){ cin>>v[i]; s+=v[i]; } for(int i=1;i<=n;i++){ pref[i]=pref[i-1]+v[i]; } for(int i=1;i<=n;i++){ for(int j=1;j<=50000;j++){ dp[i][j]=0; } } for(int i=1;i<=n;i++){ dp[i][v[i]]=i; for(int j=1;j<=50000;j++){ if(dp[i-1][j]>0) dp[i][j]=max(dp[i][j],dp[i-1][j]); if(j-v[i]>=0 && dp[i-1][j-v[i]]>0) dp[i][j]=max(dp[i][j],dp[i][j-v[i]]); } } vector<int> k; for(int i=2;i<=n;i++){ bool ok = true; for(int j=i;j<=n;j++){ int sum=pref[j]-pref[j-i]; if(sum%2==1){ ok = false; }else{ if(dp[j][sum/2]<=j-i) ok = false; } } if(ok == true) k.pb(i); } cout<<k.size()<<" "; for(int i=0;i<k.size();i++){ cout<<k[i]<<" "; } cout<<endl; // for(int i=1;i<=n;i++){ // for(int j=1;j<=s;j++){ // cout<<dp[i][j]<<" "; // } // cout<<endl; // } } }

Compilation message (stderr)

Main.cpp:12:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   12 | main(){
      | ^~~~
Main.cpp: In function 'int main()':
Main.cpp:56:16: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |   for(int i=0;i<k.size();i++){
      |               ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...