Cod sursa(job #2784374)

Utilizator VINTREXNume complet VINTREX Data 16 octombrie 2021 13:04:39
Problema Cbinteractiv Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb

#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstring>

using namespace std;
ifstream fin("a.in");
ofstream fout("b.out");
void c(int st,int dr)
{
    while (st<=dr)
    {
        int med=(st+dr)/2;
        cout << "? "<<med<<endl;
        int ans;
        cin >>ans;
        if (ans==1)
        {
            if (med-1>1)
            {
                cout << "? "<< med-1<<endl;
                cin>>ans;
                if (ans==0) {cout <<"! "<< med<<endl;break;}
                else
                {
                    st=med+1;
                }
            }
            else {cout <<"! "<<med<<endl;break;}

        }
        else dr=med-1;
    }
}
int main()
{
    int n;
    cin >>n;
    c(1,n);
}