제출 #945518

#제출 시각아이디문제언어결과실행 시간메모리
945518dugersurenSnake (CEOI08_snake)C++14
10 / 100
1 ms336 KiB
#include "snakelib.h"
#include<bits/stdc++.h>
using namespace std;
int k,l,r,minLen,maxLen,mid1,mid2;
char a1, a2;
int main(){
    k=get_speed();
    minLen=1;maxLen=12122;
    l=0;r=12122;    
    for(int i=1;i<=13;++i){
		mid1 = l + (r-l)/3;
		mid2=r - (r-l)/3;
		ask_snake(mid1,mid2,&a1,&a2);
        if(a1=='f'){
        	if(a2=='f') maxLen=mid2-l,r=mid2+k-1;
        	if(a2=='s')minLen=mid2-mid1+2,maxLen=mid2-l,r=mid2+k;
        	if(a2=='b')minLen=mid2-mid1+3,r+=k;        	
		}
		if(a1=='s'){
			if(a2=='s'){
				return minLen=r-l+1;
			}
			l=mid1;
			if(a2=='f')maxLen=mid2-l,r=mid2+k-1;
			if(a2=='b')maxLen=r-mid1+1,r=mid2+k;
			
		}
		if(a1=='b'){
			l=mid1+1;
			if(a2=='f')maxLen=mid2-mid1-1,r=mid2+k-1;
        	if(a2=='s')maxLen=mid2-mid1,r=mid2+k,r=mid2+k;
        	if(a2=='b')minLen=r-mid1+1,r+=k;  
		}
    }
    int guess=(maxLen+minLen)/2;
    tell_length(guess);
}
#Verdict Execution timeMemoryGrader output
Fetching results...