Submission #1103509

# Submission time Handle Problem Language Result Execution time Memory
1103509 2024-10-21T05:14:50 Z stdfloat Bootfall (IZhO17_bootfall) C++17
0 / 100
1 ms 336 KB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

#define all(v)	(v).begin(), (v).end()

int main() {
	ios::sync_with_stdio(false); cin.tie(nullptr);

	int n;
	cin >> n;

	vector<int> a(n);
	for (auto &i : a)
		cin >> i;

	int sm = accumulate(all(a), 0);

	vector<int> dp(sm + 1); dp[0] = 1;
	for (auto i : a) {
		for (int j = sm; j >= i; j--)
			dp[j] += dp[j - i];
	}

	if (sm & 1 || !dp[sm >> 1]) return cout << 0, 0;

	vector<int> ans(sm + 1);
	for (auto i : a) {
		for (int j = i; j <= sm; j++)
			dp[j] -= dp[j - i];

		for (int j = 1; j <= sm >> 1 && (sm - i + j) >> 1 <= sm; j++)
			if (!((sm - i + j) & 1) && dp[(sm - i + j) >> 1]) ans[j]++;

		for (int j = sm; j >= i; j--)
			dp[j] += dp[j - i];
	}

	cout << count(all(ans), n) << '\n';
	for (int i = 1; i <= sm; i++)
		if (ans[i] == n) cout << i << ' ';
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 0 ms 336 KB Output is correct
4 Incorrect 1 ms 336 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 0 ms 336 KB Output is correct
4 Incorrect 1 ms 336 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 0 ms 336 KB Output is correct
4 Incorrect 1 ms 336 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 0 ms 336 KB Output is correct
4 Incorrect 1 ms 336 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 0 ms 336 KB Output is correct
4 Incorrect 1 ms 336 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 0 ms 336 KB Output is correct
4 Incorrect 1 ms 336 KB Output isn't correct
5 Halted 0 ms 0 KB -