# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1000881 | Newtonabc | Aliens (IOI07_aliens) | C++14 | 2 ms | 344 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 main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n,a,b,k=0,prev;
int ca,cb;
bool up,down,left,right;
up=down=left=right=false;
cin>>n >>a >>b;
string inp;
int tmpa=a,tmpb=b,da=a,db=b;
while(true){
string s;
if(tmpa+(1<<k)>n){
if(k==0) break;
k=0,tmpa=prev;
continue;
}
cout<<"examine " <<tmpa+(1<<k) <<" " <<b <<endl;
cin>>s;
if(s=="true") prev=tmpa+(1<<k),k++;
else{
if(k==0) break;
k=0,tmpa=prev;
}
}/*
while(true){
string s;
if(tmpb+(1<<k)>n){
if(k==0) break;
k=0,tmpb=prev;
continue;
}
cout<<"examine " <<a <<" " <<tmpb+(1<<k) <<endl;
cin>>s;
if(s=="true") prev=tmpb+(1<<k),k++;
else{
if(k==0) break;
k=0,tmpa=prev;
}
}
while(true){
string s;
if(da-(1<<k)<0){
if(k==0) break;
k=0,da=prev;
continue;
}
cout<<"examine " <<da-(1<<k) <<" " <<b <<endl;
cin>>s;
if(s=="true") prev=da-(1<<k),k++;
else{
if(k==0) break;
k=0,da=prev;
}
}
while(true){
string s;
if(db-(1<<k)<1){
if(k==0) break;
k=0,db=prev;
continue;
}
cout<<"examine " <<a <<" " <<db-(1<<k) <<endl;
cin>>s;
if(s=="true") prev=db-(1<<k),k++;
else{
if(k==0) break;
k=0,db=prev;
}
}
int m=tmpa-da+1;
ca=(da+tmpa)/2,cb=(db+tmpb)/2;
while(true){
if(ca-2*m>=1){
cout<<"examine " <<ca-2*m <<" " <<cb <<endl;
cin>>inp;
if(inp=="true") left=true,inp="false";
}
if(ca+2*m<=n){
cout<<"examine " <<ca+2*m <<" " <<cb <<endl;
cin>>inp;
if(inp=="true") right=true,inp="false";
}
if(cb-2*m>=1){
cout<<"examine " <<ca <<" " <<cb-2*m <<endl;
cin>>inp;
if(inp=="true") down=true,inp="false";
}
if(cb+2*m<=n){
cout<<"examine " <<ca <<" " <<cb+2*m <<endl;
cin>>inp;
if(inp=="true") up=true,inp="false";
}
if(up && down && right && left){
cout<<"solution " <<ca <<" " <<cb <<endl;
return 0;
}
else if(up && left && !right && !down){
ca-=m,cb+=m;
continue;
}
else if(up && right && !left && !down){
ca+=m,cb+=m;
continue;
}
else if(down && right && !left && !up){
ca+=m,cb-=m;
continue;
}
else if(left && down && !right && !up){
ca-=m,cb-=m;
continue;
}
}*/
cout<<"solution 1 1";
}
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... |