Pagini recente » Diferente pentru algoritmiada-2018/runda-finala/program intre reviziile 8 si 21 | Cod sursa (job #3195554) | Cod sursa (job #2638370) | Diferente pentru problema/compresie intre reviziile 5 si 6 | Cod sursa (job #2784360)
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int st(1), dr(n), ans(-1);
while (st <= dr)
{
int mid = (st + dr) >> 1;
cout << "? " << mid << endl;
int flag;
cin >> flag;
if (flag == 0)
{
ans = mid + 1;
st = mid + 1;
}
else
{
dr = mid - 1;
}
}
cout << "! " << ans << endl;
return 0;
}