Submission #1181003

#TimeUsernameProblemLanguageResultExecution timeMemory
1181003hamzabcHotter Colder (IOI10_hottercolder)C++20
0 / 100
10094 ms8000 KiB
#include "grader.h"

int max(int a, int b){
   if (a > b)
      return a;
   return b;
}

int min(int a, int b){
   if (a < b)
      return a;
   return b;
}

int HC(int N){
   int l = 1, r = N, gl = (l + r - 1) >> 1, gr = gl + 2, k = 0;
   Guess(gl);
   int d = Guess(gr);
   while (l != r){
      if (d == 0){
         return (gl + gr) >> 1;
      }else if (d == 1){
         if (k == 0){
            r = (gl + gr - 1) / 2;
            gl = max(l, l + r - gr);
            d = Guess(gl);
         }else{
            l = (gl + gr) / 2 + 1;
            gr = min(r, l + r - gl);
            d = Guess(gr);
         }
         k = 1 - k;
      }else{
         if (k == 0){
            l = (gl + gr) / 2 + 1;
            if (gr == gl + 2)
               gl = max(l, l + r - gr);
            else{
               gl = (l + r - 1) >> 1;
               gr = gl + 2;
               k = 1;
            }
         }else{
            r = (gl + gr - 1) / 2;
            if (gr == gl + 2)
               gr = min(r, l + r - gl);
            else{
               gl = (l + r - 1) >> 1;
               gr = gl + 2;
               k = 1;
            }
         }
         k = 1 - k;
      }
   }
   return l;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...