# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
253835 | TadijaSebez | Hotter Colder (IOI10_hottercolder) | C++11 | 1075 ms | 22880 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 <bits/stdc++.h>
using namespace std;
const int L=30;
int n,magic[L];
int Search(int l,int r,int last){
if(l==r)return l;
if(l>r)swap(l,r);
int sz=3;
while(sz<r-l+1)sz=sz*2+1;
int mid;
if(r-sz+1>last)mid=r-sz/2;
else if(l+sz-1<last)mid=l+sz/2;
else if(last<=l)mid=last+sz/2;
else mid=last-sz/2;
int nxt=mid*2-last;
int g=Guess(nxt);
if(g==0)return mid;
if((g>0)^(last<nxt))return Search(l,max(l,mid-1),nxt);
else return Search(min(r,mid+1),r,nxt);
}
int get(int x,bool inv){return inv?n-x+1:x;}
int Solve(int sz,bool inv){
if(sz==1)return get(1,inv);
if(sz==2)return Guess(get(1,inv))>0?get(1,inv):get(2,inv);
if(sz==3){
int g=Guess(get(1,inv));
return g==0?get(2,inv):g>0?get(1,inv):get(3,inv);
}
if(sz==4){
# | 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... |