#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
#define int long long
#define pii pair<int, int>
#define ff first
#define ss second
#define entire(x) (x).begin(), (x).end()
int32_t main(){
ios::sync_with_stdio(false); cin.tie(nullptr);
int n; cin >> n;
vector<int> a(n);
for (int i = 0; i < n; i++) cin >> a[i];
// 250067
auto isgood = [&](vector<int> arr, int cur){
arr.push_back(cur);
bool isgood = true;
int sum = accumulate(entire(arr), 0ll);
for (int idx = 0; idx <= n; idx++) {
int target = sum - arr[idx];
if (target % 2) isgood = false;
if (!isgood) break;
target /= 2;
vector<bool> vis(target + 1, false); vis[0] = true;
for (int i = 0; i <= n; i++){
if (i == idx) continue;
for (int v = target - arr[i]; v > -1; v--) if (vis[v]) vis[v + arr[i]] = true;
} if (!vis[target]) isgood = false;
} return isgood;
};
vector<int> ans;
int lim = accumulate(entire(a), 0ll);
for (int cur = 0; cur < lim; cur++) {
if (isgood(a, cur)) ans.push_back(cur);
}
cout << (int) ans.size() << endl;
for (auto v : ans) cout << v << " ";
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... |