| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 130995 | sebinkim | Snake (CEOI08_snake) | C++14 | 3 ms | 424 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 <bits/stdc++.h>
#include "snakelib.h"
using namespace std;
int main()
{
	int i, k, d, s1, s2, e1, e2, m1, m2;
	char a1, a2;
	
	k = get_speed();
	
	s1 = 0; e1 = 12121;
	s2 = 0; e2 = 12121;
	
	for(i=0; i<13; i++){
		e1 = min(12121, e1 + k);
		e2 = min(12121, e2 + k);
		
		if(max(s1, s2) <= min(e1, e2)){
			s1 = s2 = min(s1, s2);
			e1 = e2 = max(e1, e2);
			m1 = (s1 * 2 + e1) / 3;
			m2 = (s1 + e1 * 2) / 3;
			
			ask_snake(m1, m2, &a1, &a2);
			
			if(a1 == 'b' && a2 == 'f'){
				s1 = s2 = m1 + 1;
				e1 = e2 = m2 - 1;
			}
			else if(a1 == 'f') e1 = e2 = m1 - 1;
			else if(a2 == 'b') s1 = s2 = m2 + 1;
			else{
				if(a1 == 's') e1 = m1;
				else s1 = m1 + 1, e1 = m2;
				if(a2 == 's') s2 = m2;
				else s2 = m1, e2 = m2 - 1;
			}
		}
		else{
			m1 = (s1 + e1) / 2;
			m2 = (s2 + e2) / 2;
			
			ask_snake(m1, m2, &a1, &a2);
			
			if(a1 == 'b') s1 = m1 + 1;
			else e1 = m1 - 1;
			
			if(a2 == 'f') e2 = m2 - 1;
			else s2 = m2 + 1;
		}
	}
	
	tell_length(s2 + e2 - s1 - e1 >> 1);
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
