# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
166684 | abil | Bootfall (IZhO17_bootfall) | C++14 | 1068 ms | 620 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define fr first
#define sc second
#define pb push_back
#define mk make_pair
#define all(s) s.begin(),s.end()
//#define int long long
using namespace std;
const int N = (1e6 + 12);
const int mod = (1e9 + 7);
const int INF = (0x3f3f3f3f);
int a[N];
set<int > s;
main()
{
int n, sum = 0;
scanf("%d", &n);
for(int i = 0;i < n; i++){
scanf("%d", &a[i]);
sum += a[i];
}
n++;
for(int i = 1;i <= sum; i++){
a[n - 1] = i;
sum += i;
bool f = true;
for(int q = 0;q < n; q++){
vector<bool > dp(N,false);
dp[0] = true;
for(int j = 0;j < n; j++){
if(j == q){
continue;
}
for(int k = sum - a[j];k >= 0; k--){
if(dp[k]){
dp[k + a[j]] = true;
}
}
}
if(!dp[(sum - a[q]) / 2] || (sum - a[q]) % 2 == 1){
f = false;
break;
}
}
sum -= i;
if(f){
s.insert(i);
}
}
cout << s.size() << endl;
for(auto to : s){
cout << to << " ";
}
}
Compilation message (stderr)
# | 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... |