# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
612527 | 2022-07-29T16:46:00 Z | karelisp | Kpart (eJOI21_kpart) | C++14 | 2000 ms | 340 KB |
#include <bits/stdc++.h> using namespace std; int T, N, a[1005], ps[1005]; int main(){ scanf("%d", &T); while(T--){ scanf("%d", &N); for(int i=1; i<=N; i++){ scanf("%d", &a[i]); ps[i] = ps[i-1] + a[i]; } vector<int> ans; for(int K=2; K<=N; K++){ bitset<100005> bs; bool is_Kary = true; for(int right=1; right<=N && is_Kary; right++){ bs[0] = true; bs |= bs<<a[right]; if(right<K) continue; int cur_sum = ps[right] - ps[right-K]; if(cur_sum%2 || bs[cur_sum/2]==0){ is_Kary = false; } bs = bs>>a[right-K+1]; } if(is_Kary) ans.push_back(K); } printf("%ld ", ans.size()); for(auto K : ans) printf("%d ", K); printf("\n"); } return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 27 ms | 340 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 167 ms | 340 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2081 ms | 340 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |