Submission #931424

#TimeUsernameProblemLanguageResultExecution timeMemory
931424Lobo커다란 상품 (IOI17_prize)C++17
90 / 100
44 ms2164 KiB
#include "prize.h" #include<bits/stdc++.h> using namespace std; #define pb push_back #define mp make_pair #define fr first #define sc second map<int,pair<int,pair<int,int>>> qr; int cnt = 0; int cntnonlol; int n; pair<int,pair<int,int>> query(int i) { if(i == n) return mp(cntnonlol,mp(cntnonlol,0)); if(qr.count(i)) return qr[i]; ++cnt; // assert(cnt <= 8500); vector<int> perg = ask(i); return qr[i] = mp(perg[0]+perg[1],mp(perg[0],perg[1])); } const int B = 477; const int S = 950; int find_best(int N) { n = N; queue<pair<int,int>> q; q.push(mp(0,n-1)); while(q.size()) { int l = q.front().fr; int r = q.front().sc; q.pop(); if(l > r) continue; if(query(l).fr == 0) return l; if(query(r).fr == 0) return r; if(query(l) == query(r)) continue; int mid = (l+r)/2; q.push(mp(l,mid)); q.push(mp(mid+1,r)); } assert(false); return -1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...