#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=0;
int pc=1;
while(check==1){
while(!paired.empty()&&pc<=paired.size()&&ptr-c-1==paired[paired.size()-pc]){
ptr-=2;
pc++;
}
if(ptr-c<=1){
break;
}
cout<<"? "<<ptr-c-1<<' '<<pos+c+1<<endl;
cin>>check;
if(check==0){
break;
}
c++;
}
for(int i=0;i<c;++i){
ans+=')';
}
ptr+=(pc-1)*2;
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... |