Submission #559466

#TimeUsernameProblemLanguageResultExecution timeMemory
559466illyakrKpart (eJOI21_kpart)C++14
0 / 100
2064 ms3924 KiB
//#pragma GCC optimize("inline,Ofast,no-stack-protector,unroll-loops,fast-math,O3") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4.1,sse4.2,popcnt,avx,abm") #include <bits/stdc++.h> #define ll long long #define int ll typedef long double ld; #define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define y0 dfgoert #define y1 kjsjofd using namespace std; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const int mod = 1000000007; const int INF1e9 = 1010101010; const int INF1e18 = 1010101010101010101; const ld PI = 3.14159265358979323846264338327950288419716939937510; int n; int a[101010]; bitset<10000001> id; void solve() { cin >> n; for (int i = 1; i <= n; i++)cin >> a[i]; id = 0; vector<int> ans; for (int k = 1; k <= n; k++) { id[0] = 1; bool ok = true; int sum = 0; for (int i = 1; i <= n; i++) { id |= (id << a[i]); sum += a[i]; if (i - k >= 1){id &= (id >> a[i - k]);sum -= a[i - k];} if (i - k >= 0) { if (sum % 2 != 0){ok = false;break;} if (!id[sum / 2]){ok = false;break;} continue; } } if (ok)ans.push_back(k); } cout << ans.size() << " "; for (int i : ans)cout << i << " "; cout << '\n'; } int32_t main() { fast int t = 1; cin >> t; for (int id = 1; id <= t; id++) { // cout << "Case " << id << ": "; solve(); } } /** */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...