Submission #969873

# Submission time Handle Problem Language Result Execution time Memory
969873 2024-04-25T17:49:28 Z starchan Bootfall (IZhO17_bootfall) C++17
0 / 100
15 ms 3164 KB
#include<bits/stdc++.h>
using namespace std;
#define in array<int, 2>
#define pb push_back
#define pob pop_back
#define INF (int)1e17
#define fast() ios_base::sync_with_stdio(false); cin.tie(NULL)

const int mod = 2543568463;
const int SMX = 2e5+5e4+10;
const int MX = 5e5+10;

int dp[MX];

void add(int x)
{
	for(int i = MX-1; i >= x; i--)
	{
		dp[i]+=dp[i-x];
		dp[i]%=mod;
	}
	return;
}

void rem(int x)
{
	for(int i = x; i < MX; i++)
	{
		dp[i]-=dp[i-x]; dp[i]+=mod;
		dp[i]%=mod;
	}
	return;
}

int cnt[SMX];

signed main()
{
	fast();
	dp[0] = 1;
	int n;
	cin >> n;
	int S = 0;
	vector<int> a(n+1);
	for(int i = 1; i <= n; i++)
	{
		cin >> a[i]; S+=a[i];
		add(a[i]);
	}
	if(S%2 || (dp[S/2] == 0))
	{
		cout << "0\n";
		return 0;
	}
	for(int i = 1; i <= n; i++)
	{
		rem(a[i]);
		for(int V = 0; V < SMX; V++)
		{
			int D = S+V-a[i];
			if(D%2)
				continue;
			if(dp[(D/2)] || ((D >= 2*V) && ((dp[(D/2)-V]))))
				cnt[V]++;
		}
		add(a[i]);
	}
	vector<int> v;
	for(int i = 0; i < SMX; i++)
	{
		if(cnt[i] == n)
			v.pb(i);
	}
	cout << v.size() << "\n";
	for(int x: v)
		cout << x << " ";
	cout << "\n";
	return 0;
}	
# Verdict Execution time Memory Grader output
1 Incorrect 15 ms 3164 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 15 ms 3164 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 15 ms 3164 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 15 ms 3164 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 15 ms 3164 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 15 ms 3164 KB Output isn't correct
2 Halted 0 ms 0 KB -