/*
ID: agageld1
LANG: C++17
TASK:
siuu
*/
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define N 200005
#define pb push_back
#define ff first
#define ss second
#define sz(s) (int)s.size()
//mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
ll n, sum, t, pos[N];
vector <int> answer, v;
multiset <int> a;
int main (){
ios::sync_with_stdio(0);cin.tie(0);
cin >> n;
for(int i = 1; i <= n;i++) {
int x;
cin >> x;
sum += x;
v.pb(x);
}
for(int i = 1; i <= 1000; i++) {
sum += i;
v.pb(i);
bool tr = 0;
for(auto j : v) {
if((sum - j) % 2) tr = 1;
}
if(tr) {
v.pop_back();
sum -= i;
continue;
}
for(int j = 0; j < sz(v); j++) {
for(int m = 1; m <= sum; m++) {
pos[m] = 0;
}
pos[0] = 1;
sum -= v[j];
for(int k = 0; k < sz(v); k++) {
if(k == j) continue;
for(int l = sum/2; l >= 0; l--) {
if(pos[l]) pos[l + v[k]] = 1;
}
}
sum += v[j];
if(!pos[(sum - v[j]) / 2]) {
tr = 1;
break;
}
}
if(!tr) answer.pb(i);
v.pop_back();
sum -= i;
}
cout << sz(answer) << '\n';
for(auto i:answer) {
cout << i << " ";
}
}
# | 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... |