제출 #1280645

#제출 시각아이디문제언어결과실행 시간메모리
1280645dbekarysKpart (eJOI21_kpart)C++20
10 / 100
2095 ms572 KiB
#include <bits/stdc++.h>
#define int long long
#define pll pair<int,int>
#define endl "\n"
using namespace std;
const int MOD2=998244353;
const int MOD1=1e9+7;
const int N=2e5+7;
const long long inf=1e18;
vector<int>g[N];
signed main()
{
    ios_base::sync_with_stdio(0),
    cin.tie(0);
    int t;
    cin>> t;
    while(t--){
        int n;
        cin>> n;
        int a[n],p[n+1];
        p[0]=0;
        for(int i=0;i<n;i++){
            cin>> a[i];
            p[i+1]=p[i]+a[i];
        }
        vector<int>v;
        for(int i=2;i<=n;i++){
            int f=0;
            for(int j=1;j+i-1<=n;j++){
                if((p[j+i-1]-p[j-1])%2!=0){
                    f=1;
                    break;
                }
                int sum=(p[j+i-1]-p[j-1])/2;
                bitset<100000>s;
                s[0]=1;
                for(int k=j;k<=j+i-1;k++){
                    s|=(s<<a[k-1]);
                }
                if(!s[sum]){
                    f=1;
                    break;
                }
            }
            if(f==0){
                v.push_back(i);
            }
        }
        cout<< v.size()<<' ';
        for(int i: v){
            cout<< i<<' ';
        }
        cout<< endl;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...