Submission #1368100

#TimeUsernameProblemLanguageResultExecution timeMemory
1368100SofiatpcFind the Box (EGOI23_findthebox)C++20
0 / 100
0 ms412 KiB
#include <bits/stdc++.h>

using namespace std;

int h,w; 

void askline(int r){
    cout<<"? ";
    for(int i = 1; i < r; i++)cout<<"v";
    for(int j = 1; j < w; j++)cout<<">";
    cout<<endl;

    int i,j; cin>>i>>j; i++; j++;
    if(i != r)cout<<"! "<<r-1<<" 0"<<endl;
    else cout<<"! "<<i-1<<" "<<j+1 -1<<endl;
}

void askcolumn(int c){
    cout<<"? ";
    for(int j = 1; j < c; j++)cout<<">";
    for(int i = 1; i < h; i++)cout<<"v";
    cout<<endl;

    int i,j; cin>>i>>j; i++; j++;
    cout<<"! "<<i+1 -1<<" "<<j -1<<endl;
}

int main(){
    cin>>h>>w;

    if(h == 1){ askline(1); return 0;}
    if(w == 1){ askcolumn(1); return 0;}

    int mid = h/2;

    cout<<"? ";
    for(int i = 1; i < mid+1; i++)cout<<"v";
    for(int j = 1; j <= w; j++){
        for(int i = mid+1; i < h; i++)cout<<"v";
        for(int i = h; i > mid+1; i--)cout<<"^";
        if(j != w)cout<<">";
    }cout<<endl;

    int r,c; cin>>r>>c; r++; c++; 
    if(r == mid+1 && c != w){ cout<<"! "<<mid+1 -1<<" "<<c-1 -1<<endl; return 0; }
    if(r == 1){ askcolumn(1); return 0; }
    if(r != mid+1) { askline(h-(mid-r)); return 0; }
    
    cout<<"? ";
    for(int i = 1; i < mid+1; i++)cout<<"v";
    cout<<">";
    for(int j = 2; j <= w; j++){
        for(int i = mid; i > 1; i--)cout<<"^";
        if(j != w) for(int i = 1; i < mid; i++)cout<<"v";
        if(j != w)cout<<">";
    }
    cout<<"^";
    for(int j = w; j > 1; j--)cout<<"<";
    cout<<endl;

    cin>>r>>c; r++; c++;
    if(c == 0)cout<<"! "<<r-1 -1<<" "<<w -1<<endl;
    else cout<<"! "<<r-1<<" "<<c-1 -1<<endl;

}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...