이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <algorithm>
using std::clamp;
int Guess(int G);
int HC(int N){
if(N == 1) return 1;
int l = 1, r = N, p = (l + r) / 2 + 1;
Guess(p);
while(l < r){
const int p2 = [&]{
if(p == 1){
return clamp((l + l + l + r + 1) / 2 - p, 1, N);
}
if(p == N){
return clamp((r + r + r + l) / 2 - p, 1, N);
}
int ans = clamp(l + r - p, 1, N);
if(ans == p){
if(N - r > l - 1) ans--;
else ans++;
}
return ans;
}();
int ans = Guess(p2);
if(ans == 0) return (p + p2) / 2;
if(ans == 1){
if(p2 < p) r = (p + p2 - 1) / 2;
else l = (p + p2 + 2) / 2;
}
else{
if(p2 < p) l = (p + p2 + 2) / 2;
else r = (p + p2 - 1) / 2;
}
p = p2;
}
return l;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |