Cod sursa(job #2751105)
Utilizator | Baczur Richard richardbaczur1 | Data | 14 mai 2021 11:16:41 |
---|---|---|---|
Problema | Cbinteractiv | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.62 kb |
#include <iostream>
using namespace std;
int n;
int query(int x)
{
int ret;
cout << "? " << x << endl;
cin >> ret;
return ret;
}
int main()
{
cin >> n;
int st = 0, dr = n, sol = n;
while (st <= dr)
{
int mid = (st + dr) / 2;
int status = query(mid);
if (status == 0)
{
st = mid + 1;
}
else if (status == 1)
{
dr = mid - 1;
sol = mid;
}
else
{
return -1;
}
}
cout << "! " << sol << endl;
return 0;
}