#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
// #include "debug.h"
#else
#define debug(...) 42
#endif
#define ll long long
#define ld long double
#define inf 0x3f3f3f3f3f3f3f3f
#define pii pair<int,int>
#define all(x) (x).begin(), (x).end()
#define isz(x) (int)(x.size())
const int MXN = 500;
const ll mod = 998244353;
int a[MXN], n;
bool check(int idx) {
vector<int> b;
int sum = 0;
for (int i = 1; i <= n+1; i++) if (i != idx) {
b.push_back(a[i]);
sum += a[i];
}
if (sum & 1) return false;
sum /= 2;
bitset<10001> dp;
dp[0] = 1;
for (int x : b)
dp |= (dp << x);
return dp[sum];
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
#ifdef LOCAL
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
freopen("err.log", "w", stderr);
#endif
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
sort(a+1, a+1+n);
vector<int> answ;
for (int v = 1; v <= 2000; v++) {
a[n+1] = v;
bool ok = true;
for (int i = 1; i <= n+1; i++) {
ok &= check(i);
if (!ok) break;
}
if (ok) answ.push_back(v);
}
cout << isz(answ) << "\n";
for (auto &el : answ) cout << el << " ";
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |