# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
131004 | sebinkim | Snake (CEOI08_snake) | C++14 | 2 ms | 376 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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();
if(k == 0) k = 1, d = 0;
else d = 1;
s1 = 0; e1 = 12121 / k;
s2 = 0; e2 = 12121 / k;
for(i=0; i<13; i++){
e1 = min(12121 / k, e1 + d);
e2 = min(12121 / k, e2 + d);
if(s1 == s2 && e1 == e2 && e1 - s1 >= 3){
m1 = (s1 * 2 + e1) / 3;
m2 = (s1 + e1 * 2) / 3;
ask_snake(m1 * k, m2 * k, &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 * k, m2 * k, &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 - s1) * k);
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |