# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
855108 | 2023-09-30T07:23:16 Z | Alfraganus | Bootfall (IZhO17_bootfall) | C++17 | 1000 ms | 61276 KB |
#include <bits/stdc++.h> using namespace std; #define fs first #define ss second #define endl '\n' #define all(a) a.begin(), a.end() #define print(a) \ for(auto x : a) \ cout << x << ' '; \ cout << endl; #define printmp(a) \ for (auto x : a) \ cout << x.fs << ' ' << x.ss << endl; vector<vector<int>> dp; void solve(){ int n; cin >> n; vector<int> a(n); int sum = 0; bool even = false, odd = false; for(int i = 0; i < n; i ++) cin >> a[i], sum += a[i], even |= !(a[i] & 1), odd |= (a[i] & 1); sort(all(a)); if((sum & 1)){ cout << 0; return; } if(even and odd){ cout << 0; return; } queue<int> q; q.push(sum / 2); bool flag = false; vector<bool> used(sum / 2); while(!q.empty()){ int x = q.front(); q.pop(); if(x == 0) flag = 1; if(!flag){ for(int i = 0; i < n; i ++){ if(x >= a[i] and !used[x - a[i]]){ used[x - a[i]] = 1; q.push(x - a[i]); } } } } if(!flag){ cout << 0; return; } dp.resize(n, vector<int> (sum)); for(int i = 0; i < n; i ++){ dp[i][0] = 1; vector<int> b; for(int j = 0; j < n; j ++){ if(i != j){ dp[i][a[j]] = 1; for (auto x : b) { if (x + a[j] < (int)dp[0].size() and dp[i][x + a[j]] == 0) { dp[i][x + a[j]] = 1; b.push_back(x + a[j]); } } b.push_back(a[j]); } } b.clear(); } if(even){ vector<int> ans; for(int j = 2; j <= sum - a[0]; j += 2){ int c = sum; for(int i = 0; i < n; i ++){ sum -= a[i]; sum += j; if(!((sum / 2 < (int)dp[0].size() and sum / 2 >= 0 and dp[i][sum / 2] == 1) or (sum / 2 - j < (int)dp[0].size() and sum / 2 >= j and dp[i][sum / 2 - j] == 1))) break; sum -= j; sum += a[i]; if(i == n - 1) ans.push_back(j); } sum = c; } cout << ans.size() << endl; print(ans) } else{ vector<int> ans; for (int j = 1; j <= sum - a[0]; j += 2) { int c = sum; for (int i = 0; i < n; i++) { sum -= a[i]; sum += j; if (!((sum / 2 < dp[0].size() and sum / 2 >= 0 and dp[i][sum / 2]) or (sum / 2 - j < dp[0].size() and sum / 2 >= j and dp[i][sum / 2 - j]))) break; sum -= j; sum += a[i]; if (i == n - 1) ans.push_back(j); } sum = c; } cout << ans.size() << endl; print(ans) } } signed main(){ // ios::sync_with_stdio(0); // cin.tie(0); int t = 1; // cin >> t; while(t --){ solve(); cout << endl; } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 1 ms | 348 KB | Output is correct |
7 | Correct | 1 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 348 KB | Output is correct |
9 | Correct | 0 ms | 344 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 1 ms | 348 KB | Output is correct |
7 | Correct | 1 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 348 KB | Output is correct |
9 | Correct | 0 ms | 344 KB | Output is correct |
10 | Correct | 1 ms | 344 KB | Output is correct |
11 | Correct | 1 ms | 348 KB | Output is correct |
12 | Correct | 1 ms | 436 KB | Output is correct |
13 | Correct | 0 ms | 344 KB | Output is correct |
14 | Correct | 1 ms | 348 KB | Output is correct |
15 | Correct | 0 ms | 348 KB | Output is correct |
16 | Correct | 1 ms | 472 KB | Output is correct |
17 | Correct | 0 ms | 348 KB | Output is correct |
18 | Correct | 0 ms | 348 KB | Output is correct |
19 | Correct | 0 ms | 348 KB | Output is correct |
20 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 1 ms | 348 KB | Output is correct |
7 | Correct | 1 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 348 KB | Output is correct |
9 | Correct | 0 ms | 344 KB | Output is correct |
10 | Correct | 1 ms | 344 KB | Output is correct |
11 | Correct | 1 ms | 348 KB | Output is correct |
12 | Correct | 1 ms | 436 KB | Output is correct |
13 | Correct | 0 ms | 344 KB | Output is correct |
14 | Correct | 1 ms | 348 KB | Output is correct |
15 | Correct | 0 ms | 348 KB | Output is correct |
16 | Correct | 1 ms | 472 KB | Output is correct |
17 | Correct | 0 ms | 348 KB | Output is correct |
18 | Correct | 0 ms | 348 KB | Output is correct |
19 | Correct | 0 ms | 348 KB | Output is correct |
20 | Correct | 0 ms | 348 KB | Output is correct |
21 | Correct | 7 ms | 1112 KB | Output is correct |
22 | Correct | 10 ms | 1372 KB | Output is correct |
23 | Correct | 4 ms | 860 KB | Output is correct |
24 | Correct | 21 ms | 2392 KB | Output is correct |
25 | Correct | 29 ms | 3676 KB | Output is correct |
26 | Correct | 35 ms | 4188 KB | Output is correct |
27 | Correct | 23 ms | 3932 KB | Output is correct |
28 | Correct | 17 ms | 3932 KB | Output is correct |
29 | Correct | 20 ms | 4188 KB | Output is correct |
30 | Correct | 0 ms | 348 KB | Output is correct |
31 | Correct | 43 ms | 3420 KB | Output is correct |
32 | Correct | 27 ms | 2336 KB | Output is correct |
33 | Correct | 3 ms | 4188 KB | Output is correct |
34 | Correct | 3 ms | 4352 KB | Output is correct |
35 | Correct | 16 ms | 4188 KB | Output is correct |
36 | Correct | 22 ms | 2312 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 1 ms | 348 KB | Output is correct |
7 | Correct | 1 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 348 KB | Output is correct |
9 | Correct | 0 ms | 344 KB | Output is correct |
10 | Correct | 1 ms | 344 KB | Output is correct |
11 | Correct | 1 ms | 348 KB | Output is correct |
12 | Correct | 1 ms | 436 KB | Output is correct |
13 | Correct | 0 ms | 344 KB | Output is correct |
14 | Correct | 1 ms | 348 KB | Output is correct |
15 | Correct | 0 ms | 348 KB | Output is correct |
16 | Correct | 1 ms | 472 KB | Output is correct |
17 | Correct | 0 ms | 348 KB | Output is correct |
18 | Correct | 0 ms | 348 KB | Output is correct |
19 | Correct | 0 ms | 348 KB | Output is correct |
20 | Correct | 0 ms | 348 KB | Output is correct |
21 | Correct | 7 ms | 1112 KB | Output is correct |
22 | Correct | 10 ms | 1372 KB | Output is correct |
23 | Correct | 4 ms | 860 KB | Output is correct |
24 | Correct | 21 ms | 2392 KB | Output is correct |
25 | Correct | 29 ms | 3676 KB | Output is correct |
26 | Correct | 35 ms | 4188 KB | Output is correct |
27 | Correct | 23 ms | 3932 KB | Output is correct |
28 | Correct | 17 ms | 3932 KB | Output is correct |
29 | Correct | 20 ms | 4188 KB | Output is correct |
30 | Correct | 0 ms | 348 KB | Output is correct |
31 | Correct | 43 ms | 3420 KB | Output is correct |
32 | Correct | 27 ms | 2336 KB | Output is correct |
33 | Correct | 3 ms | 4188 KB | Output is correct |
34 | Correct | 3 ms | 4352 KB | Output is correct |
35 | Correct | 16 ms | 4188 KB | Output is correct |
36 | Correct | 22 ms | 2312 KB | Output is correct |
37 | Correct | 468 ms | 16060 KB | Output is correct |
38 | Correct | 456 ms | 16404 KB | Output is correct |
39 | Correct | 50 ms | 61276 KB | Output is correct |
40 | Execution timed out | 1064 ms | 35076 KB | Time limit exceeded |
41 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 1 ms | 348 KB | Output is correct |
7 | Correct | 1 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 348 KB | Output is correct |
9 | Correct | 0 ms | 344 KB | Output is correct |
10 | Correct | 1 ms | 344 KB | Output is correct |
11 | Correct | 1 ms | 348 KB | Output is correct |
12 | Correct | 1 ms | 436 KB | Output is correct |
13 | Correct | 0 ms | 344 KB | Output is correct |
14 | Correct | 1 ms | 348 KB | Output is correct |
15 | Correct | 0 ms | 348 KB | Output is correct |
16 | Correct | 1 ms | 472 KB | Output is correct |
17 | Correct | 0 ms | 348 KB | Output is correct |
18 | Correct | 0 ms | 348 KB | Output is correct |
19 | Correct | 0 ms | 348 KB | Output is correct |
20 | Correct | 0 ms | 348 KB | Output is correct |
21 | Correct | 7 ms | 1112 KB | Output is correct |
22 | Correct | 10 ms | 1372 KB | Output is correct |
23 | Correct | 4 ms | 860 KB | Output is correct |
24 | Correct | 21 ms | 2392 KB | Output is correct |
25 | Correct | 29 ms | 3676 KB | Output is correct |
26 | Correct | 35 ms | 4188 KB | Output is correct |
27 | Correct | 23 ms | 3932 KB | Output is correct |
28 | Correct | 17 ms | 3932 KB | Output is correct |
29 | Correct | 20 ms | 4188 KB | Output is correct |
30 | Correct | 0 ms | 348 KB | Output is correct |
31 | Correct | 43 ms | 3420 KB | Output is correct |
32 | Correct | 27 ms | 2336 KB | Output is correct |
33 | Correct | 3 ms | 4188 KB | Output is correct |
34 | Correct | 3 ms | 4352 KB | Output is correct |
35 | Correct | 16 ms | 4188 KB | Output is correct |
36 | Correct | 22 ms | 2312 KB | Output is correct |
37 | Correct | 468 ms | 16060 KB | Output is correct |
38 | Correct | 456 ms | 16404 KB | Output is correct |
39 | Correct | 50 ms | 61276 KB | Output is correct |
40 | Execution timed out | 1064 ms | 35076 KB | Time limit exceeded |
41 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 1 ms | 348 KB | Output is correct |
7 | Correct | 1 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 348 KB | Output is correct |
9 | Correct | 0 ms | 344 KB | Output is correct |
10 | Correct | 1 ms | 344 KB | Output is correct |
11 | Correct | 1 ms | 348 KB | Output is correct |
12 | Correct | 1 ms | 436 KB | Output is correct |
13 | Correct | 0 ms | 344 KB | Output is correct |
14 | Correct | 1 ms | 348 KB | Output is correct |
15 | Correct | 0 ms | 348 KB | Output is correct |
16 | Correct | 1 ms | 472 KB | Output is correct |
17 | Correct | 0 ms | 348 KB | Output is correct |
18 | Correct | 0 ms | 348 KB | Output is correct |
19 | Correct | 0 ms | 348 KB | Output is correct |
20 | Correct | 0 ms | 348 KB | Output is correct |
21 | Correct | 7 ms | 1112 KB | Output is correct |
22 | Correct | 10 ms | 1372 KB | Output is correct |
23 | Correct | 4 ms | 860 KB | Output is correct |
24 | Correct | 21 ms | 2392 KB | Output is correct |
25 | Correct | 29 ms | 3676 KB | Output is correct |
26 | Correct | 35 ms | 4188 KB | Output is correct |
27 | Correct | 23 ms | 3932 KB | Output is correct |
28 | Correct | 17 ms | 3932 KB | Output is correct |
29 | Correct | 20 ms | 4188 KB | Output is correct |
30 | Correct | 0 ms | 348 KB | Output is correct |
31 | Correct | 43 ms | 3420 KB | Output is correct |
32 | Correct | 27 ms | 2336 KB | Output is correct |
33 | Correct | 3 ms | 4188 KB | Output is correct |
34 | Correct | 3 ms | 4352 KB | Output is correct |
35 | Correct | 16 ms | 4188 KB | Output is correct |
36 | Correct | 22 ms | 2312 KB | Output is correct |
37 | Correct | 468 ms | 16060 KB | Output is correct |
38 | Correct | 456 ms | 16404 KB | Output is correct |
39 | Correct | 50 ms | 61276 KB | Output is correct |
40 | Execution timed out | 1064 ms | 35076 KB | Time limit exceeded |
41 | Halted | 0 ms | 0 KB | - |