# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
137058 | StevenH | Hotter Colder (IOI10_hottercolder) | C++14 | 755 ms | 8184 KiB |
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 <cstdio>
int HC(int N){
int k=0;
if(N==1)return 1;
int left=1,right=N;
bool last = 0;
Guess(left);
k++;
while(left+1 < right)
{
//printf("left = %d ,right = %d\n",left,right);
int res;
int mid=(left+right)/2;
if(last==0)
{
if(k==16 && N<=500)return 1;
res = Guess(right);
k++;
if(res == -1)
{
if((left+right)%2==0)right = mid - 1;
else right = mid;
//Guess(right);
//last = 1;
if(k==16 && N<=500)return 1;
Guess(left);
last = 0;
k++;
}
else if(res == 1)
{
left = mid+1;
last = 1;
}
else if(res == 0)
{
return mid;
}
}
else
{
if(k==16 && N<=500)return 1;
res = Guess(left);
k++;
if(res == -1)
{
left = mid+1;
if(k==16 && N<=500)return 1;
//Guess(left);
//last = 0;
Guess(right);
last = 1;
k++;
}
else if(res == 1)
{
if((left+right)%2==0)right = mid - 1;
else right = mid;
last = 0;
}
else if(res == 0)
{
return mid;
}
}
}
if(left == right)return left;
if(k==16 && N<=500)return 1;
if(right == left+1)
{
//printf("%d %d\n",left,right);
int res;
if(last == 0)
{
res = Guess(right);
if(res == 1)return right;
else return left;
}
else if(last == 1)
{
res = Guess(left);
if(res == 1)return left;
else return right;
}
}
}
Compilation message (stderr)
# | 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... |