# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
68386 | 2018-08-17T04:06:28 Z | nvmdava | Aliens (IOI07_aliens) | C++17 | 3 ms | 552 KB |
#include <bits/stdc++.h> using namespace std; int n; char s[10]; bool ask(int x, int y){ if(x > n || x < 1 || y > n || y < 1){ return 0; } printf("examine %d %d", x, y); fflush(stdout); scanf("%s", &s); return (s[0] == 't'); } int x, y, m; int main(){ scanf("%d %d %d",&n,&x,&y); int left, right, up, down; int l = 0, r = x; while(l + 1 != r){ int m = (l + r) / 2; if(ask(m, y)){ r = m; } else { l = m; } } left = l; l = x, r = n + 1; while(l + 1 != r){ int m = (l + r) / 2; if(ask(m, y)){ l = m; } else { r = m; } } right = l; l = 0, r = y; while(l + 1 != r){ int m = (l + r) / 2; if(ask(x, m)){ r = m; } else { l = m; } } up = l; l = y, r = n + 1; while(l + 1 != r){ int m = (l + r) / 2; if(ask(x, m)){ l = m; } else { r = m; } } down = l; m = __gcd(right - left, down - up); right = left + m; down = up + m; x = (right + left) / 2 + 1; y = (down + up) / 2 + 1; if(m % 3 == 0){ if(ask(x, y + m / 3) == 0){ m/=3; } } if(m % 5 == 0){ if(ask(x + m / 5, y) == 0){ printf("solution %d %d\n", x, y); return 0; } } right = left + m; down = up + m; x = (right + left) / 2 + 1; y = (down + up) / 2 + 1; while(ask(x - m, y - m)){ x -= m; y -= m; } while(ask(x - m, y)){ x -= m; } while(ask(x, y - m)){ y -= m; } printf("solution %d %d\n", x + 2 * m, y + 2 * m); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2 ms | 248 KB | Time limit exceeded (wall clock) |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2 ms | 308 KB | Time limit exceeded (wall clock) |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2 ms | 472 KB | Time limit exceeded (wall clock) |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2 ms | 472 KB | Time limit exceeded (wall clock) |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2 ms | 472 KB | Time limit exceeded (wall clock) |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2 ms | 472 KB | Time limit exceeded (wall clock) |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2 ms | 496 KB | Time limit exceeded (wall clock) |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3 ms | 496 KB | Time limit exceeded (wall clock) |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2 ms | 552 KB | Time limit exceeded (wall clock) |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2 ms | 552 KB | Time limit exceeded (wall clock) |
2 | Halted | 0 ms | 0 KB | - |