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>
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 );
		st.insert( a[i] );
		for( int j = i + 1; 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 | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |