제출 #1092437

#제출 시각아이디문제언어결과실행 시간메모리
1092437juicyBootfall (IZhO17_bootfall)C++17
65 / 100
1062 ms932 KiB
#include <bits/stdc++.h> using namespace std; #ifdef LOCAL #include "debug.h" #else #define debug(...) 42 #endif const int N = 505, M = 250005; int n; int a[N]; bitset<M> dp; bitset<2 * M> res, tmp; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n; res = bitset<2 * M>().set(); for (int i = 1; i <= n; ++i) { cin >> a[i]; } for (int i = 0; i <= n; ++i) { dp.reset(); dp.set(0); int sum = 0; for (int j = 1; j <= n; ++j) { if (i ^ j) { dp |= dp << a[j]; sum += a[j]; } } if (!i && !dp.test(sum / 2)) { cout << 0 << "\n"; exit(0); } tmp.reset(); if (i) { for (int ii = 0; ii <= sum / 2; ++ii) { if (dp.test(ii)) { tmp.set(sum - 2 * ii); } } res &= tmp; } } cout << res.count() << "\n"; for (int i = 0; i < 2 * M; ++i) { if (res.test(i)) { cout << i << " "; } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...