# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
253835 | TadijaSebez | Hotter Colder (IOI10_hottercolder) | C++11 | 1075 ms | 22880 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |