#include <bits/stdc++.h>
using namespace std;
bool check(vector<int> &v, int l, int r)
{
int cnt = 0;
vector<int> a;
for (int i = l; i <= r; i++)
{
// cout << v[i] << ' ';
a.push_back(v[i]);
cnt += v[i];
}
// cout << endl;
if (cnt % 2 == 1)
return false;
cnt /= 2;
vector<bool> dp(cnt + 1);
dp[0] = true;
for (int i : a){
for (int j = cnt; j >= i; j--){
if (dp[j - i]) dp[j] = true;
}
}
return dp[cnt];
}
void solve()
{
int n;
cin >> n;
vector<int> v(n);
for (int i = 0; i < n; i++)
{
cin >> v[i];
}
vector<int> ans;
for (int k = 2; k <= n; k++)
{
// cout << k << endl;
bool so = true;
for (int l = 0; l <= n - k; l++)
{
if (!check(v, l, l + k - 1))
{
so = false;
break;
}
}
if (so)
ans.push_back(k);
}
cout << ans.size() << ' ';
for (int i : ans)
cout << i << ' ';
cout << endl;
}
int main()
{
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... |