Submission #631013

#TimeUsernameProblemLanguageResultExecution timeMemory
631013ZsofiaKeresztelyKpart (eJOI21_kpart)C++14
0 / 100
2085 ms12364 KiB
#include <bits/stdc++.h> using namespace std; int main(){ int t, n, s, sum, op; cin >> t; vector<int> a; vector<int> lasti; vector<bool> k; while (t--){ cin >> n; a.resize(n); k.assign(n+1, true); k[0] = false; for (int i=0; i<n; i++){ cin >> a[i]; s += a[i]; } s /= 2; lasti.assign(s + 1, -1); for (int i=0; i<n; i++){ cin >> a[i]; for (int j=s-a[i]; j>0; j--){ lasti[j + a[i]] = max(lasti[j + a[i]], lasti[j]); } if (a[i] <= s){ lasti[a[i]] = i; } sum = 0; for (int j=i; j>=0; j--){ sum += a[j]; if (sum % 2 || lasti[sum / 2] < j){ k[i - j + 1] = false; } } } op = 0; for (int x : k){ if (x){ op++; } } cout << op << " "; for (int i=1; i<n+1; i++){ if (k[i]){ cout << i << " "; } } cout << "\n"; } return 0; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:17:9: warning: 's' may be used uninitialized in this function [-Wmaybe-uninitialized]
   17 |       s += a[i];
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...