Submission #1107740

#TimeUsernameProblemLanguageResultExecution timeMemory
1107740vjudge1Kpart (eJOI21_kpart)C++17
0 / 100
569 ms3576 KiB
#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 } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...