Cod sursa(job #2757243)
Utilizator | Data | 4 iunie 2021 17:17:58 | |
---|---|---|---|
Problema | Cbinteractiv | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include <cstdio>
using namespace std;
int main()
{
int N;
int ans;
int li, lf, m;
scanf("%d", &N);
li = 1;
lf = N;
while (li <= lf) {
if (li == lf) {
printf("! %d", li);
return 0;
}
m = li + (lf - li) / 2;
printf("? %d", m);
fflush(stdout);
scanf("%d", &ans);
if (ans == -1)
return 0; // messed up
if (ans == 0)
li = m + 1;
else
lf = m;
}
return 0;
}