# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
772209 | 2023-07-03T18:13:00 Z | Abkonl | Hotter Colder (IOI10_hottercolder) | C++17 | 0 ms | 0 KB |
#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 (count > 0) { 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; }