Submission #1163302

#TimeUsernameProblemLanguageResultExecution timeMemory
1163302lopkusKpart (eJOI21_kpart)C++20
30 / 100
2095 ms516 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 100001; bitset<MAXN> b; int main() { ios::sync_with_stdio(false); cin.tie(0); int tt; cin >> tt; while(tt--) { int n; cin >> n; vector<int> a(n + 1); for(int i = 1; i <= n; i++) { cin >> a[i]; } a[0] = 0; vector<int> ans; vector<int> can(n + 1, 1); for(int i = 1; i <= n; i++) { b[0] = 1; int sum = 0; vector<int> to_reset; for(int k = i; k <= n; k++) { b |= (b << a[k]); sum += a[k]; if(sum % 2) { can[k - i + 1] = 0; continue; } if(! b[sum / 2]) { can[k - i + 1] = 0; continue; } } b.reset(); } for(int k = 1; k <= n; k++) { if(can[k]) { ans.push_back(k); } } cout << ans.size() << " "; for(auto x : ans) { cout << x << " "; } cout << "\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...