Submission #1107331

# Submission time Handle Problem Language Result Execution time Memory
1107331 2024-11-01T06:22:22 Z vjudge1 Kpart (eJOI21_kpart) C++17
10 / 100
2000 ms 2216 KB
#include <bits/stdc++.h>

using namespace std;

#define int long long
#define sz(x) x.size()
#define pb push_back
#define F first
#define S second
#define nl '\n'

const int N = 1001;
int ans[N], a[N], p[N];

void solve()
{
	int n;
	cin >>n;
	int a[n + 1], p[n + 1];
	for( int i = 1; i <= n; ++i )
	{
		cin >>a[i];
		p[i] = p[i - 1] + a[i];
	}
	for( int i = 1; i <= n; ++i )
	{
		set< int >st;
		st.insert( 0 );
		for( int j = i; j <= n; ++j )
		{
			vector< int >s;
			for( auto x: st )
				s.pb( x );
			for( int x: s )
				st.insert(x + a[j]);
			int sum = p[j] - p[i - 1];
			if( sum & 1 )
				continue;
			if( st.count(sum / 2) )
				ans[j - i + 1]++;
		}
	}
	vector< int >v;
	for( int i = 1; i <= n; ++i )
	{
		if( ans[i] == n - i + 1 )
			v.pb( i );
		ans[i] = 0;
	}
	cout <<sz(v) <<' ';
	for( int i: v )
		cout <<i <<' ';
	cout <<nl;
}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    // freopen("input.txt", "r", stdin);
    // freopen("output.txt", "w", stdout);
    int T = 1;
    cin >>T;
    while( T-- )
    	solve();
}
# Verdict Execution time Memory Grader output
1 Correct 92 ms 664 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1826 ms 992 KB Output is correct
2 Execution timed out 2047 ms 1356 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 2051 ms 2216 KB Time limit exceeded
2 Halted 0 ms 0 KB -