Submission #1327440

#TimeUsernameProblemLanguageResultExecution timeMemory
1327440SamNguyenHotter Colder (IOI10_hottercolder)C++20
53.33 / 100
470 ms8224 KiB
#include "grader.h"
#include <iostream>

const int T_SAME = 0;
const int T_HOTTER = +1;
// const int T_COLDER = -1;

int solve(int l, int r, int a) {
    if (l == r)
        return r;

    int b = std::max(l, std::min(r, l + r - a));
    if (b == a and a + 1 <= r)
        b = a + 1;
    if (b == a and a - 1 <= r)
        b = a - 1;
        
    int g = Guess(b);

    /*
    if (r - l == 1) {
        if (g == T_HOTTER)
            return b;
        return a;
    }
    */

    int m = (a + b) / 2;

    if (g == T_SAME)
        return m;

    if ((g == T_HOTTER) xor (b < a))
        // x* nearer to the right boundary
        return solve(m + 1, r, b);
    else
        // x* nearer to the left boundary
        return solve(l, m, b);
}

int HC(int N){
    int sta = (N + 3) / 4;
    Guess(sta);
    return solve(1, N, sta);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...