Cod sursa(job #2757245)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 4 iunie 2021 17:21:31
Problema Cbinteractiv Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.47 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);
      fflush(stdout);
      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;
}