Submission #1262649

#TimeUsernameProblemLanguageResultExecution timeMemory
1262649iordache_Kpart (eJOI21_kpart)C++20
30 / 100
2100 ms484 KiB
#include <bits/stdc++.h> #define pb push_back //#define int long long using namespace std; const int N=1e3+5; int v[N],pref[N]; void solve() { int n; cin>>n; for(int i=1;i<=n;++i) cin>>v[i]; for(int i=1;i<=n;++i) pref[i]=pref[i-1]+v[i]; vector<int> cnt(n+5); bitset<50005> dp; bitset<50005> aux; for(int i=1;i<=n;++i) { if(i>1) dp&=aux; dp.set(0); for(int j=i;j<=n;++j) { dp|=(dp<<v[j]); if((pref[j]-pref[i-1])&1) continue; if(dp[(pref[j]-pref[i-1])/2]) ++cnt[j-i+1]; } } vector<int> ot; for(int k=1;k<=n;++k) if(cnt[k]==n-k+1) ot.pb(k); cout<<ot.size()<<" "; for(auto x:ot) cout<<x<<" "; } signed main() { ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); int t=1;cin>>t; while(t--) {solve();cout<<'\n';} }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...