Submission #945707

#TimeUsernameProblemLanguageResultExecution timeMemory
945707jakebrain88Snake (CEOI08_snake)C++17
17.50 / 100
1 ms500 KiB
#include "snakelib.h" #include<bits/stdc++.h> using namespace std; int k; char a1, a2; int main(){ int l,r,minLen,maxLen,mid1,mid2; k= get_speed(); minLen=1;maxLen=12122; l=0;r=12122; for(int i=1;i<=30;++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'){ tell_length(minLen=r-l+1); return 0; } 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; if(a2=='b')minLen=r-mid1+1,r+=k; } } int guess=(maxLen+minLen)/2; tell_length(guess); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...