제출 #626573

#제출 시각아이디문제언어결과실행 시간메모리
626573Mounir커다란 상품 (IOI17_prize)C++14
90 / 100
97 ms1216 KiB
#include "prize.h" #include <bits/stdc++.h> #define chmin(x, v) x = min(x, v) using namespace std; map<int, vector<int>> ans; vector<int> ask_res(int i){ if (ans.count(i)) return ans[i]; ans[i] = ask(i); //if (i != 7) cout << "query " << i << " " << rep[0] << " " << rep[1] << endl; return ans[i]; } const int C = 6; map<int, int> occs; int find_best(int n) { int sumMax = -1; for (int i = 0; i < 500; ++i){ vector<int> ans = ask_res(i); occs[ans[0] + ans[1]]++; if (ans[0] + ans[1] == 0) return i; if (ans[0] + ans[1] > sumMax) sumMax = ans[0] + ans[1]; } for (int i = 500; i < n; ++i){ vector<int> ans = ask_res(i); if (ans[0] + ans[1] == 0) return i; if (ans[0] + ans[1] != sumMax) continue; int pasBonbons = ans[0]; int deb = i + 1, fin = n, saut = n - 1; while (fin >= deb){ int mid = (deb + fin)/2; vector<int> cur = ask_res(mid); if (cur[0] + cur[1] == 0) return mid; if (cur[0] + cur[1] != sumMax){ fin = mid - 1; chmin(saut, mid); continue; } if (cur[0] != pasBonbons) { fin = mid - 1; chmin(saut, mid); } else deb = mid + 1; } //on a le prochain pas bonbon i = saut; } }

컴파일 시 표준 에러 (stderr) 메시지

prize.cpp: In function 'int find_best(int)':
prize.cpp:56:1: warning: control reaches end of non-void function [-Wreturn-type]
   56 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...