Submission #1106396

#TimeUsernameProblemLanguageResultExecution timeMemory
1106396MuhammetKpart (eJOI21_kpart)C++17
0 / 100
95 ms592 KiB
#include "bits/stdc++.h" using namespace std; #define ll long long #define ff first #define ss second const int N = 3e5+5; int T, n; int main(){ cin >> T; while(T--){ cin >> n; vector <int> a(n+1); int s = 0; for(int i = 1; i <= n; i++){ cin >> a[i]; s += a[i]; } vector <bool> vis(n+1,0); vector <int> dp(s+1,0); for(int i = 1; i <= n; i++){ dp[a[i]] = i; for(int j = a[i]; j <= s; j++){ dp[j] = max(dp[j],dp[j-a[i]]); } int s = 0; for(int j = i; j >= 1; j--){ s += a[j]; if(dp[s/2] < j or s % 2 == 1) vis[i-j+1] = 1; } } vector <int> v; int cnt = 0; for(int i = 1; i <= n; i++){ if(vis[i] == 0){ cnt++; v.push_back(i); } } cout << cnt << ' '; for(auto i : v){ cout << i << " "; } cout << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...