Submission #1346056

#TimeUsernameProblemLanguageResultExecution timeMemory
1346056settopFind the Box (EGOI23_findthebox)C++20
50 / 100
0 ms460 KiB
#include<bits/stdc++.h>

using namespace std;

#define int long long
#define fall(i,a,b) for(int i=a;i<=b;i++)
#define rfall(i,a,b) for(int i=a;i>=b;i--)
#define pb push_back
#define F first
#define all(x) x.begin(),x.end()
#define S second
#define sz(x) (int)x.size()
const int MAXN=3e5+10;

typedef pair<int,int> pii;

int n,m,x,y;

void ask(string s){
    cout<<"? "<<s<<endl;
    cin>>x>>y;
}

int32_t main(){
    std::ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    cin>>n>>m;
    string s="";
    fall(i,1,n-1) s+='v';
    if(n!=1){
        ask(s);
        if(x!=n-1){
            cout<<"! "<<x+1<<" "<<y<<endl;
            return 0;
        }
    }
    int ini=1,fim=m-2,colu=m-1;
    while(ini<=fim){
        int mei=(ini+fim)>>1;
        s="";
        fall(i,1,mei) s+='>';
        fall(i,1,mei-1) s+='<'; 
        fall(_,1,n-1){ 
            s+='v';
            fall(j,1,mei-1) s+='>';
            fall(j,1,mei-1) s+='<';
        }
        ask(s);
        if(x!=n-1 || y!=1) fim=mei-1,colu=mei;
        else ini=mei+1;
    }
    s="";
    fall(i,0,colu-1) s+='>';
    fall(i,1,n) s+='v';
    ask(s);
    if(y!=colu) x=0;
    else x++;
    cout<<"! "<<x<<" "<<colu<<endl; 
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...