Submission #863659

#TimeUsernameProblemLanguageResultExecution timeMemory
863659RifalZagrade (COI20_zagrade)C++14
100 / 100
508 ms2472 KiB
#include <bits/stdc++.h>
#include <fstream>
//#define endl '\n'
#define mod 1000000007
#define INF 900000000
//#define cin fin
//#define cout fout
//#define fi first
//#define se second
using namespace std;
//ofstream fout("intel.out");
//ifstream fin("intel.in");

int main()
{
    ios_base::sync_with_stdio(0);cout.tie(0);cin.tie(0);
    int n, q; cin >> n >> q; string ans; stack<int> st;
    for(int i = 1; i <= n; i++) {
        if(st.empty()) {
            st.push(i);
            ans.push_back('(');
        }
        else {
            cout << '?' << ' '  << st.top() << ' ' << i << endl;
            int x; cin >> x; 
            if(x == 1) {
                st.pop();
                ans.push_back(')');
            }
            else {
                st.push(i);
                ans.push_back('(');
            }
        }
    }
    if(!st.empty()) {
       // cout << st.size() << endl;
        int siz = st.size();
        for(int i = 0; i < siz/2; i++) {
         //   cout << st.top() << 'l' << endl;
            ans[st.top()-1] = '(';
            st.pop();
        }
        for(int i = 0; i < siz/2; i++) {
           // cout << st.top() << 'g' << endl;
            ans[st.top()-1] = ')';
            st.pop();
        }
    }
    cout << '!' << ' ' << ans << endl;
 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...