Pagini recente » Diferente pentru algoritmiada-2010/runda-finala/program intre reviziile 8 si 3 | Cod sursa (job #156289) | Cod sursa (job #2735386) | Diferente pentru problema/trilant intre reviziile 9 si 8 | Cod sursa (job #2832187)
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
int st = 1,pas = 1 << 30;
while (pas != 0)
{
int x = st + pas - 1;
if (x <= n)
{
cout << "? " << x << '\n';
cout.flush();
int ans;
cin >> ans;
if (ans == 0)
st = x + 1;
}
pas /= 2;
}
cout << "! " << st << '\n';
cout.flush();
return 0;
}
///nr dorit este mai mare ca intrebare atunci cresc st la intrebare
///nr dorit este mai mic sau egal cu intrebare