This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "grader.h"
#include <iostream>
using namespace std;
int HC(int N){
if(N==1)return 1;
long long int n=N;
int mid=n/2;
long long int l=1,r=n,a=-1,pre=n;
while(true)
{
long long int tmp;
if(a==0)
{
if(mid<pre)
{
pre=l;
mid=r;
}
else{
pre=r;
mid=l;
}
}
else
{
Guess(r);
pre=r;
mid=l;
}
tmp=Guess(mid);
//cout<<l<<" "<<r<<" "<<mid<<" "<<pre<<" "<<tmp<<endl;
if(tmp==1)
{
if(pre>mid)
{
r=(mid+pre)/2;
if((mid+pre)%2==0)r--;
if(l==mid)a=0;
else a=1;
}
else
{
l=(mid+pre)/2+1;
if(r==mid)a=0;
else a=1;
}
}
if(tmp==-1)
{
if(pre>mid)
{
l=(mid+pre)/2+1;
if(r==mid)a=0;
else a=1;
}
else
{
r=(mid+pre)/2;
if((mid+pre)%2==0)r--;
if(l==mid)a=0;
else a=1;
}
}
if(tmp==0)return (mid+pre)/2;
}
}
# | 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... |