제출 #1335110

#제출 시각아이디문제언어결과실행 시간메모리
1335110boclobanchatZagrade (COI20_zagrade)C++20
100 / 100
260 ms936 KiB
#include<bits/stdc++.h>
using namespace std;
int ask(int l,int r)
{
	cout<<"? "<<l<<" "<<r<<endl;
	fflush(stdout);
	int res;
	cin>>res;
	return res;
}
void answer(string s)
{
	cout<<"! "<<s<<endl;
	fflush(stdout);
}
stack<int> st;
int main()
{
	int n,q;
	cin>>n>>q;
	string ans;
	for(int i=0;i<n;i++) ans+='?';
	int cnt=0;
	for(int i=1;i<=n;i++) if(st.empty()) st.push(i),cnt++;
	else if(ask(st.top(),i)) ans[st.top()-1]='(',ans[i-1]=')',st.pop(),cnt--;
	else st.push(i),cnt++;
	while(!st.empty())
	{
		int a=st.top();
		st.pop();
		if((cnt-=2)>=0) ans[a-1]='(';
		else ans[a-1]=')';
	}
	answer(ans);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...