Submission #333126

#TimeUsernameProblemLanguageResultExecution timeMemory
333126mohamedsobhi777Bootfall (IZhO17_bootfall)C++14
28 / 100
1061 ms1260 KiB
//stupid solution 1 #include <bits/stdc++.h> #pragma GCC optimize("-Ofast") //#pragma GCC optimize("trapv") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.2,popcnt,abm,mmx,avx2,tune=native") #pragma GCC optimize("-ffast-math") #pragma GCC optimize("-funroll-loops") #define vi vector<int> #define vii vector<pair<int, int>> #define pii pair<int, int> #define pll pair<ll, ll> #define loop(_) for (int __ = 0; __ < (_); ++__) #define forn(i, n) for (int i = 0; i < n; ++i) using namespace std; using ll = long long; using ld = long double; const int N = 500 + 7; const int NN = N * N; const ll mod = 1e9 + 7; const ll inf = 2e18; auto ra = [] {char *p = new char ; delete p ; return ll(p) ; }; mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count() * (ra() | 1)); int n; bitset<NN> eval(vi v) { bitset<NN> ret; ret[0] = 1; for (auto u : v) ret = (ret | (ret << u)); return ret; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); //freopen("in.in", "r", stdin); cin >> n; vi a(n), ans; int sum = 0; for (auto &u : a) cin >> u; sum = accumulate(a.begin(), a.end(), 0); bitset<NN> bs = eval(a); if (sum & 1 || !bs[sum / 2]) return cout << 0, 0; set<int> st; map<int, int> ret; for (int i = 0; i < n; ++i) { int x = a[i]; a[i] = 0; bitset<NN> bts = eval(a); int sm = sum - x; for (int j = 0; j <= sm; ++j) { if (bts[j]) { if (2 * j != sm) ret[abs(j - (sm - j))]++; } } a[i] = x; } int sz = 0; for (auto u : ret) if (u.second == 2 * n) ++sz; cout << sz << "\n"; for (auto u : ret) if (u.second == n * 2) cout << u.first << " "; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...