답안 #1107740

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1107740 2024-11-02T04:30:04 Z vjudge1 Kpart (eJOI21_kpart) C++17
0 / 100
569 ms 3576 KB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define nn "\n";
#define pb push_back
#define all(v) (v).begin() , (v).end()
const int N = 2e5+ 4;
int dp[N] , bad[N];
int n , T , q , m ;
signed main(){
    ios_base::sync_with_stdio(0) , cin.tie(0);
    cin>> T;
    while(T--){
        cin>> n ;
        int a[n+1] , p[n+1];
        p[0] =0 ;
        for(int i=1 ; i <= n  ; i++){
            cin>>a[i];
            p[i] = p[i-1]+a[i];
        }
        for(int i= 1 ; i <= n ;i++){
            for(int j = a[i]; j <= N - 1  ; j++){
                dp[j] = max(dp[j] , dp[j- a[i]]);
            }
            dp[a[i]] = i;
            for(int k = 1 ; k <= i; k++){
                int sum = p[i] - p[i-k];
                if(sum % 2 == 1 || dp[sum/2] <i - k + 1)bad[k] = 1 ;
            }
        }
        vector<int>w;
        for(int i=1 ; i <= n ; i++){
            if(!bad[i])w.pb(i);
        }
        for(int i=0 ; i< N ; i++)dp[i] =0 , bad[i] =0  ;
        sort(all(w));
        cout << w.size() << ' ' ;
        for(auto it:w)cout <<it << ' ';
        cout << nn
    }
}

# 결과 실행 시간 메모리 Grader output
1 Incorrect 55 ms 3412 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 152 ms 3576 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 569 ms 3400 KB Output isn't correct
2 Halted 0 ms 0 KB -