Submission #1163298

#TimeUsernameProblemLanguageResultExecution timeMemory
1163298lopkusKpart (eJOI21_kpart)C++20
10 / 100
2095 ms472 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 100001; 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]; } function<int(int, int)> can = [&](int l, int r) { int sum = 0; for(int i = l; i <= r; i++) { sum += a[i]; } if(sum % 2) { return 0; } bitset<MAXN> b; b[0] = 1; for(int i = l; i <= r; i++) { b |= (b << a[i]); } int w = b[sum / 2]; return w; }; vector<int> ans; for(int k = 1; k <= n; k++) { int ok = 1; for(int i = 1; i + k - 1 <= n; i++) { ok &= can(i, i + k - 1); } if(ok) { 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...