Cod sursa(job #2758889)

Utilizator andrei_C1Andrei Chertes andrei_C1 Data 14 iunie 2021 07:44:52
Problema Cbinteractiv Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <bits/stdc++.h>
#pragma GCC optimize("O2")
using namespace std;
int N, ans;
inline __attribute__((always_inline)) int ask(int x) {
    printf("? %d\n", x);
    scanf("%d", &x);
    return x;

}
int main() {
    scanf("%d", &N);
    int st = 1, dr = N, mid;
    while(st <= dr) {
        mid = (st + dr) >> 1;
        ans = ask(mid);
        if(ans == 0) {
            st = mid + 1;
        } else if(ans == 1) {
            dr = mid - 1;
        } else {
            return 0;
        }
    }
    printf("! %d\n", st);
    return 0;

}