# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
68390 | nvmdava | Aliens (IOI07_aliens) | C++17 | 1081 ms | 548 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>
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\n", x, y);
fflush(stdout);
scanf("%s", &s);
return (s[0] == 't');
}
int x, y, m;
int main(){
scanf("%d %d %d",&n,&x,&y);
if(n > (1 << 29)){
cout<<"A";
}
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){
m /= 5;
}
}
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 - 2 * m, y) ){
x -= 2 * m;
}
while(ask(x, y - 2 * m) ){
y -= m * 2;
}
printf("solution %d %d\n", x + 2 * m, y + 2 * m);
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |