Submission #442602

#TimeUsernameProblemLanguageResultExecution timeMemory
442602BornaCizmarevicZagrade (COI20_zagrade)C++14
100 / 100
1061 ms1520 KiB
#include <bits/stdc++.h>

using namespace std;

int main (){
	
	ios::sync_with_stdio(0);
	cin.tie(0);
	
	int n,q;
	cin>>n;
	cin>>q;
	int niz[n];
	memset(niz,0,sizeof niz);
	char s[n];
	int p=1;
	vector <int> v;
	v.push_back(1);
	for (int i=1;i<n;i++){
		p=v[v.size()-1];
		cout<<"? "<<p<<" "<<i+1<<endl;
		bool ans;
		cin>>ans;
		if (ans==0){
			v.push_back(i+1);
		}
		if (ans==1){
			s[i]=')';
			s[p-1]='(';
			niz[i]=1;
			niz[p-1]=1;
			v.pop_back();
			if (v.size()==0 and i<n-1){
				v.push_back(i+2);
				i++;
			}
		}
	}
	int br=0,nb=0;
	for (int i=0;i<n;i++){
		if (niz[i]!=1){
			br++;;
		}
	}
	cout<<"! ";
	for (int i=0;i<n;i++){
		if (niz[i]!=1 and nb<br/2){
			cout<<')';
			nb++;
		}
		else if (niz[i]!=1 and nb>=br/2){
			cout<<'(';
		}
		else {
			cout<<s[i];
		}
	}
	return 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...