이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "prize.h"
using namespace std;
int find_best(int n) {
vector<int> ar = ask(0);
int sum = ar[1];
if(ar[1] == 0)
return 0;
int pos = 0;
vector<vector<int>> query(n);
while(true)
{
for(int i = 17 ; i >= 0 ; i--)
{
int target = pos + (1<<i);
if(target < n)
{
if(query[target].empty())
query[target] = ask(target);
if(query[target][0] + query[target][1] == sum and query[target][1] == ar[1])
pos = target;
}
}
pos++;
while(true)
{
if(query[pos].empty())
query[pos] = ask(pos);
ar = query[pos];
if(ar[0] + ar[1] == 0)
return pos;
else if(ar[0] + ar[1] == sum)
break;
pos++;
}
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |