Submission #1339104

#TimeUsernameProblemLanguageResultExecution timeMemory
1339104po_rag526Aliens (IOI07_aliens)C++20
0 / 100
1 ms420 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
pair<int,int>solve(int x,int y,int m,int n){
   string ans;
   if(x+(m+1)/2<=n){
      cout<<"examine "<<abs(x+(m+1)/2)<<" "<<abs(y+(m+1)/2)<<endl;
      cin>>ans;
      if(ans=="true"){
         return {abs(x+(m+1)/2),abs(y+(m+1)/2)};
      }
   }
   if(abs(x-(m+1)/2)<=n && abs(y+(m+1)/2)<=n){
      cout<<"examine "<<abs(x-(m+1)/2)<<" "<<abs(y+(m+1)/2)<<endl;
      cin>>ans;
      if(ans=="true"){
         return {abs(x-(m+1)/2),abs(y+(m+1)/2)};
      }
   }
   if(abs(x-(m+1)/2)<=n && abs(y-(m+1)/2)<=n){
         cout<<"examine "<<abs(x-(m+1)/2)<<" "<<abs(y-(m+1)/2)<<endl;
         cin>>ans;
         if(ans=="true"){
            return {abs(x-(m+1)/2),abs(y-(m+1)/2)};
      }
   }
   return {abs(x+(m+1)/2),abs(y-(m+1)/2)};              
}
pair<int,int>maker(int lx,int ly,int m,int n){
   if(lx+(4*(m-1))<=n && ly+(4*(m-1))<=n){
      string poss;
      cout<<"examine "<<lx+(4*(m-1))<<" "<< ly+(4*(m-1))<<endl;
      cin>>poss;
      if(poss=="true"){
         return {lx+(4*(m-1)),ly+(4*(m-1))};
      }
   }
   if(lx-(4*(m-1))<=n && ly+(4*(m-1))<=n){
      string poss;
      cout<<"examine "<<lx-(4*(m-1))<<" "<< ly+(4*(m-1))<<endl;
      cin>>poss;
      if(poss=="true"){
         return {lx-(4*(m-1)),ly+(4*(m-1))};
      }
   }
   if(lx-(4*(m-1))>=0 && ly-(4*(m-1))>=0){
      string poss;
      cout<<"examine "<<lx-(4*(m-1))<<" "<< ly-(4*(m-1))<<endl;
      cin>>poss;
      if(poss=="true"){
         return {lx-(4*(m-1)),ly-(4*(m-1))};
      }
   }
   return {lx+(4*(m-1)),ly-(4*(m-1))};
}
signed main(){
   int t=1;
   //cin>>t;
   while(t--){
      int n,x,y;
      cin>>n>>x>>y;
      int m=0;
      for(int i=1;i+x<=n;i++){
         cout<<"examine "<<x+i<<" "<<y<<endl;
         string ans;
         cin>>ans;
         if(ans=="false"){
            break;
         }
         m=i;
      }
      int mc=0;
      for(int i=1;x-i>0;i++){
         cout<<"examine "<<x-i<<" "<<y<<endl;
         string ans;
         cin>>ans;
         if(ans=="false"){
            break;
         }
         mc=i;
      }
      m+=mc;
      pair<int,int>tempo=solve(x,y,m,n);
      x=tempo.first;
      y=tempo.second;
      int lx=x,ly=y;
      for(int i=1;x+i*m*2<=n;i+=2){
         cout<<"examine "<<x+i*m*2<<" "<<x+i*m*2<<endl;
         string ans;
         cin>>ans;
         if(ans=="false"){
            break;
         }
         lx=x+i*m*2;
         ly=x+i*m*2;
      }
      pair<int,int>solu=maker(lx,ly,m+2,n);
      cout<<"solution "<<(solu.first+lx)/2<<" "<<(solu.second+ly)/2<<endl;
   }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...