Submission #1318194

#TimeUsernameProblemLanguageResultExecution timeMemory
1318194jesusargKpart (eJOI21_kpart)C++20
10 / 100
2095 ms472 KiB
#include <bits/stdc++.h> #define int long long #define pb push_back using namespace std; bitset<100005> dp; vector<int> vet(1005),pref(1005); int n; bool can(int k){ for(int i = 0; i <= n-k; i++) { int sum = pref[i+k]-pref[i]; if(sum%2!=0){ return 0; } dp.reset(); dp[0]=1; for(int j = i; j < i+k; j++){ dp|=(dp<<vet[j]); if(dp[sum/2]){ break; } } if(!dp[sum/2]){ return 0; } } return 1; } int32_t main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t; cin >> t; while(t--){ cin>> n; for(int i = 0; i < n; i++){ cin >> vet[i]; } pref[0]=0; for(int i = 0; i < n; i++){ pref[i+1]=pref[i]+vet[i]; } vector<int> ans; for(int k = 1; k <= n; k++) { if(can(k)) { ans.pb(k); } } cout << ans.size() << ' '; for(auto i: ans) cout << i << ' '; cout << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...