# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
40217 | jackyliuxx | 커다란 상품 (IOI17_prize) | C++14 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "prize.h"
#include <iostream>
using namespace std;
int gogo(int fr, int to, int lc, int rc, int mxc) {
if (lc + rc == mxc) {
return -1;
}
int mid = (fr + to) / 2;
int lto = mid, rfr = mid + 1;
vector<int> res;
int n = to - fr;
for (int i = 0; i < n; i++) {
if (i & 1) {
mid -= i;
} else {
mid += i;
}
lto = min(lto, mid);
rfr = max(rfr, mid + 1);
res = ask(mid);
int c = res[0] + res[1];
if (c == 0) {
return mid;
} else if (c == mxc) {
int lrc, rlc;
if (mid == lto) {
lrc = res[1];
rlc = res[0] + i;