이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "grader.h"
#include <iostream>
using namespace std;
int HC(int N){
int low = 1;
int high = N;
int guess = high; // Primeiro palpite é N
int prev = 0;
int response_prev = 0;
int response_prev_prev = 0;
int firstGuess = true;
while (low < high) {
int response = Guess(guess);
if (response == 1) {
if(prev > guess)
high = (guess + high)/2;
if(prev < guess)
low = (guess + low)/2;
}
else if (response == -1) {
if(prev > guess)
low = (guess + low)/2;
if(prev < guess)
high = (guess + high)/2;
}
if(response == -1 && response_prev == 0 && response_prev_prev == 1) {
return prev;
}
prev = guess;
response_prev_prev = response_prev;
response_prev = response;
if(response == 0 && guess == prev) {//Casos especiais
if(firstGuess == true) {
firstGuess = false;
guess = (low + high) / 2;
}
else {
guess = guess + 1;
}
}
if(response != 0) //Padrão
guess = (low + high) / 2;
}
return low;
}
# | 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... |