Submission #370266

#TimeUsernameProblemLanguageResultExecution timeMemory
370266dooweyThe Big Prize (IOI17_prize)C++14
90 / 100
112 ms976 KiB
#include <bits/stdc++.h> #include "prize.h" using namespace std; typedef long long ll; typedef pair<int, int> pii; #define fi first #define se second #define mp make_pair map<int,pii> res; pii get(int x){ if(res.count(x)) return res[x]; vector<int> g = ask(x); res[x] = mp(g[0], g[1]); return mp(g[0],g[1]); } int low = 0; int n; int solve(int li, int ri){ if(li > ri) return -1; pii ga = get(li); if(ga.fi + ga.se == 0){ return li; } if(li == ri) return -1; if(ga.fi + ga.se < low) return solve(li + 1, ri); int sha = ga.se; pii gb = get(ri); if(gb.fi + gb.se == 0) return ri; if(gb.fi + gb.se < low) return solve(li, ri - 1); int tot = ga.se - gb.se; if(tot == 0) return -1; int mid = (li + ri) / 2; int sa = solve(li, mid); if(sa != -1) return sa; int sb = solve(mid + 1, ri); return sb; } int find_best(int _n) { n = _n; pii cur; for(int i = 0 ; i < min(n,500); i ++ ){ cur = get(i); if(cur.fi + cur.se == 0) return i; low = max(low, cur.fi + cur.se); } return solve(0, n - 1); }

Compilation message (stderr)

prize.cpp: In function 'int solve(int, int)':
prize.cpp:34:9: warning: unused variable 'sha' [-Wunused-variable]
   34 |     int sha = ga.se;
      |         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...