#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> ii;
int main(){
int n, q, check;
string ans;
vector<int> paired;
cin>>n>>q;
int ptr=1;
int counter=0;
while(ptr<n+1){
if(ptr==n){
ptr++;
continue;
}
cout<<"? "<<ptr<<' '<<ptr+1<<endl;
cin>>check;
if(check==0){
ans+='(';
++ptr;
}else{
ans+="()";
int pos=ptr+1;
int c=1;
int pc=1;
while(check==1){
cout<<"? "<<ptr-c<<' '<<pos+c<<endl;
cin>>check;
c++;
if(!paired.empty()&&pc<=paired.size()&&ptr-c==paired[paired.size()-pc]){
c+=2;
pc++;
}
if(ptr-c<1){
break;
}
}
c-=2;
for(int i=0;i<c-(pc-1)*2;++i){
ans+=')';
}
paired.push_back(ptr+1);
ptr+=c+2;
}
}
while(ans.length()<n){
ans+=')';
}
cout<<"! "<<ans;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |