Submission #137052

#TimeUsernameProblemLanguageResultExecution timeMemory
137052tinjyuHotter Colder (IOI10_hottercolder)C++14
50 / 100
754 ms8312 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...