This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define OYY 10000000005
#define mod 1000000007
char dizi[100005];
vector <int> q;
bool kes[100005];
vector <pair<pair<int,int>,int>> de;
int ko=0;
int sor(int x,int y){
cout<<"? "<<x<<" "<<y<<" ";
cout<<'\n';
int m;cin>>m;
cout<<'\n';
de.push_back({{x,y},m});
return m;
}
int32_t main(){
int n,k;cin>>n>>k;
dizi[1]='(';
q.push_back(1);
for(int i=2;i<=n;i++){
if(q.size() && sor(q.back(),i)){
dizi[i]=')';
ko+=1;
q.pop_back();
}
else{
dizi[i]='(';
q.push_back(i);
}
}
k-=n-1;
while(k>=0 && q.size()){
int i;
if(q.size())i=q[0];
else i=2;
for(;i<=n;i++){
if(q.size() && sor(q.back(),i)){
dizi[i]=')';
//kes[i]=1;
ko+=1;
q.pop_back();
}
else{
dizi[i]='(';
q.push_back(i);
}
}
k-=n-1;
}
/*int gec=q.size()/2;
for(int i=0;i<=gec-1;i++){
dizi[q[i]]=')';
}*/
cout<<"! ";
for(int i=1;i<=n;i++)cout<<dizi[i]<<" ";
cout<<'\n';
}
# | 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... |