제출 #937266

#제출 시각아이디문제언어결과실행 시간메모리
937266snpmrnhlolThe Big Prize (IOI17_prize)C++17
0 / 100
56 ms2868 KiB
#include "prize.h" #include <bits/stdc++.h> using namespace std; const int K = 500; set <int> s; int mx = 0,id = 0,cnt = 0; int ans = -1; void solve(int l,int r,int dl,int dr){ if(dl + dr >= mx)return; if(l > r)return; int mij = (l + r)/2; for(int i = mij;i <= r;i++){ auto x = ask(i); if(x[0] + x[1] == mx){ x[0]-=dl; x[1]-=dr; solve(i,r,x[0] + dl,dr); solve(l,mij - 1,dl,dr + x[1] + i - mij); return; }else{ if(x[0] + x[1] == 0){ ans = i; return; } } } solve(l,mij - 1,dl,dr); return; } int find_best(int n) { for(int i = 0;i < min(n,K);i++){ auto x = ask(i); int nr = x[0] + x[1]; if(nr == 0)return i; if(nr > mx){ mx = nr; cnt = 1; }else if(mx == nr){ cnt++; } } solve(0,n - 1,0,0); return ans; } /** 8 3 3 3 3 2 2 2 1 **/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...