Submission #1361049

#TimeUsernameProblemLanguageResultExecution timeMemory
1361049khanhphucscratchZagrade (COI20_zagrade)C++20
100 / 100
170 ms928 KiB
#include<bits/stdc++.h>
using namespace std;
int ask(int l, int r)
{
    cout<<"? "<<l<<" "<<r<<endl;
    int ans; cin>>ans; return ans;
}
char ans[100005];
int main()
{
    int n, q; cin>>n>>q;
    stack<int> st;
    st.push(1);
    for(int i = 2; i <= n; i++){
        if(st.size() == 0) st.push(i);
        else{
            int x = st.top();
            if(ask(x, i) == 1){st.pop(); ans[x] = '('; ans[i] = ')';}
            else st.push(i);
        }
    }
    int val = st.size();
    for(int i = 1; i <= val/2; i++){
        ans[st.top()] = '(';
        st.pop();
    }
    for(int i = 1; i <= val/2; i++){
        ans[st.top()] = ')';
        st.pop();
    }
    cout<<"! ";
    for(int i = 1; i <= n; i++) cout<<ans[i];
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...