Submission #1214637

#TimeUsernameProblemLanguageResultExecution timeMemory
1214637omarrrrZagrade (COI20_zagrade)C++20
100 / 100
238 ms1616 KiB
#include<bits/stdc++.h>
#define ll long long
#define F first
#define S second
#define pb push_back
#define mpr make_pair

const ll N=2e6 + 10 , mod=1e9 + 7, inf=1e18;

using namespace std;

ll n,m,k,q,c,x,y;
ll t[N];
vector<bool>vis(false,1000);

int main(){
     ios_base::sync_with_stdio (0); cin.tie(0),cout.tie(0);

//    freopen("dining.in","r",stdin);
//    freopen("dining.out","w",stdout);




    ll T=1;
    //cin>>T;
    while(T--){
        cin>>n>>q;
        string ch="";

        ll l=1,r=2,tot=1,y=0;

        priority_queue<ll>pq;
        vector<char>v(n+5,'.');
        v[1]='.';
        pq.push(1);
        while(tot<n){
            cout<<"? "<<l<<" "<<r<<endl;
            cin>>x;
            if(x==1){
                v[r]=')';
                v[l]='(';
                tot++;
                if(!pq.empty()){
                    l=pq.top();
                    pq.pop();
                }else{
                    pq.push(r+1);
                    l=r+1;
                    r++;
                    tot++;
                }
            }else{
                pq.push(l);
                tot++;
                l=r;
            }
          //  cout<<tot<<" "<<pq.size()<<"\n";
            r++;
            y++;
        }
        ll m=pq.size()/2;
      //  cout<<pq.size()<<pq.top();

        for(ll i=0;i<m-1;i++){
            ll j=pq.top();
            v[j]='(';
            pq.pop();
        }
        for(ll i=0;i<m;i++){
            ll j=pq.top();
            v[j]=')';
            pq.pop();
        }
        cout<<"! ";
        for(ll i=1;i<=n;i++){
            cout<<(v[i]!='.' ? v[i]:'(');
        }
        cout<<endl;





    }


    return 0;
}

/*
10 9
 0
 1
 0
 0
 1
 1
 0
 0
 1
 1
 0

)(()()





*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...