Cod sursa(job #2760210)

Utilizator vlad2009Vlad Tutunaru vlad2009 Data 23 iunie 2021 20:54:33
Problema Cbinteractiv Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.57 kb
#include <iostream>

using namespace std;

void ask(int nr, int &st, int &dr, int &sol)
{
    int ras;
    cout << "? " << nr << "\n";
    cin >> ras;
    if (ras == 0)
    {
        sol = nr;
        st = nr + 1;
    }
    else if (ras == 1)
    {
        dr = nr - 1;
    }
}

int cb(int n)
{
    int st = 1, dr = n, sol = -1;
    while (st <= dr)
    {
        int mijl = (st + dr) / 2;
        ask(mijl, st, dr, sol);
    }
    return sol;
}

int main()
{
    int n;
    cin >> n;
    int ans = cb(n);
    cout << "! " << ans;
    return 0;
}