Submission #1309648

#TimeUsernameProblemLanguageResultExecution timeMemory
1309648empyr1nKpart (eJOI21_kpart)C++20
0 / 100
2094 ms716 KiB
#pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #include <bits/stdc++.h> #define ll long long #define pb push_back #define el '\n' using namespace std; int main () { ios_base::sync_with_stdio(false); cin.tie(nullptr); ll tt; cin >> tt; while (tt--) { ll n; cin >> n; vector <ll> a(n + 1), pr(n + 1); pr[0] = 0; for (ll i = 1; i <= n; i++) { cin >> a[i]; pr[i] = pr[i - 1] + a[i]; } cout << 2 << ' '; for (ll res = 3; res <= n; res++) { bool ok = 1; for (ll l = 1; l + res - 1 <= n; l++) { ll r = l + res - 1; ll sum = pr[r] - pr[l - 1]; if (sum & 1) { ok = 0; break ; } sum >>= 1; ll mx = 0; vector <char> dp(sum + 1, 0); dp[0] = 1; for (ll i = l; i <= r; i++) { mx = max(mx, a[i]); if (mx > sum) { ok = 0; break ; } for (ll j = sum; j >= a[i]; j--) if (dp[j - a[i]]) dp[j] = 1; if (dp[sum]) break ; } if (!ok || !dp[sum]) { ok = 0; break ; } } if (ok) cout << res << ' '; } cout << el; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...