Submission #226226

#TimeUsernameProblemLanguageResultExecution timeMemory
226226quocnguyen1012Poklon (COCI17_poklon7)C++14
48 / 120
324 ms60792 KiB
#include <bits/stdc++.h> #define fi first #define se second #define mp make_pair #define pb push_back #define eb emplace_back #define ar array using namespace std; typedef long long ll; typedef pair<int, int> ii; const int maxn = 1e6 + 5, inf = 1e9; int lc[maxn], rc[maxn]; int N; int val[3 * maxn]; ll solve(int u) { if(u > N){ return val[u]; } ll le = -1, ri = -1; if(lc[u]) le = solve(lc[u]); if(rc[u]) ri = solve(rc[u]); if(le == -1) return ri; if(ri == -1) return le; return max(ri, le) * 2ll; } signed main(void) { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #ifdef LOCAL freopen("A.INP", "r", stdin); freopen("A.OUT", "w", stdout); #endif // LOCAL cin >> N; int cnt = N + 1; for(int i = 1; i <= N; ++i){ int a, b; cin >> a >> b; if(a < 0){ lc[i] = cnt; val[cnt] = -a; ++cnt; } else{ lc[i] = a; } if(b < 0){ rc[i] = cnt; val[cnt] = -b; ++cnt; } else{ rc[i] = b; } } ll res = solve(1); bool lead = false; for(int bit = 63; bit >= 0; --bit){ if(res >> bit & 1){ lead = true; } if(lead) cout << (res >> bit & 1); } }
#Verdict Execution timeMemoryGrader output
Fetching results...