This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "grader.h"
#include<bits/stdc++.h>
using namespace std;
int Guess (int x);
int HC(int N)
{
int low = 1;
int high = N;
int guess = high; // Primeiro palpite é N
int previous_guess = 0;
while (low < high)
{
int response = Guess(guess);
if (response == 1)
{
if (previous_guess > guess)
high = (guess + high) / 2;
if (previous_guess < guess)
low = (guess + low) / 2;
}
else if (response == -1)
{
if (previous_guess > guess)
low = (guess + low) / 2;
if (previous_guess < guess)
high = (guess + high) / 2;
}
previous_guess = guess;
if (response == 0 && guess == previous_guess) // Casos especiais
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... |