This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
#define ll long long
//#define int ll
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int NN;
int ans(int a,int b,int pos){
if(b<a)return 0;
if(a==b)return a;
if(pos<=a){
if(b+a-pos>NN){
Guess(a);
pos=a;
}
int x=Guess(b+a-pos);
if(x==0)return (a+b)/2;
if(x==-1)return ans(a,(a+b-1)/2,b+a-pos);
return ans((a+b+1)/2,b,b+a-pos);
}
if(pos>=b){
if(a-(pos-b)<1){
Guess(b);
pos=b;
}
int k=Guess(a-(pos-b));
if(k==0)return (a+b)/2;
if(k==1)return ans(a,(a+b-1)/2,a-(pos-b));
return ans((a+b+1)/2,b,a-(pos-b));
}
/*int k=Guess(a);
int x=Guess(b);
if(x==0)return (a+b)/2;
if(x==-1)return ans(a,(a+b-1)/2,b);
return ans((a+b+1)/2,b,b);*/
}
int HC(int N){
NN=N;
Guess(1);
return ans(1,N,1);
}
Compilation message (stderr)
hottercolder.cpp: In function 'int ans(int, int, int)':
hottercolder.cpp:38:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |