Submission #1358375

#TimeUsernameProblemLanguageResultExecution timeMemory
1358375SofiatpcFind 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++;
    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+1)/2;

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

    int r,c; cin>>r>>c; r++; c++;
    if(r != mid){ askline(r-mid); return 0; }
    if(c != w){ cout<<"! "<<mid -1<<" "<<c+1 -1<<endl; return 0; }

    if(h%2 == 1)mid--;

    cout<<"? ";
    for(int j = 1; j < w; j++)cout<<">";
    for(int i = 1; i < mid+1; i++)cout<<"v";

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

    cin>>r>>c; r++; c++;
    if(r != mid+1){ askline(h-(mid-r)); return 0; }
    if(c != 1){ cout<<"! "<<mid+1 -1<<" "<<c-1 -1<<endl; return 0; }

    askcolumn(1);
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...