Submission #1152617

#TimeUsernameProblemLanguageResultExecution timeMemory
1152617hmm789Zagrade (COI20_zagrade)C++20
100 / 100
262 ms5888 KiB
#include "bits/stdc++.h"
using namespace std;
#define int long long
#define double long double
#define INF 1000000000000000000
#define MOD 1000000007

int32_t main() {
//    ios_base::sync_with_stdio(0);
//    cin.tie(0); cout.tie(0);
    int n, q, x;
    cin >> n >> q;
    int a[n];
    memset(a, 0, sizeof(a));
    int s = 0, cnt = n/2;
    set<int> st;
    for(int i = 0; i < n; i++) st.insert(i);
    for(int e = 1; e < n; e++) {
        if(s == -1 || a[s]) {
            s = e; continue;
        }
        cout << "? " << s+1 << " " << e+1 << endl;
        cin >> x;
        if(x == 1) {
            a[s] = 1; a[e] = -1;
            st.erase(s); st.erase(e);
            cnt--;
            auto it = st.upper_bound(s);
            if(it == st.begin()) s = -1;
            else s = *prev(it);
        } else {
            s = e;
        }
    }
    cout << "! ";
    for(int i = 0; i < n; i++) {
        if(!a[i]) {
            if(cnt > 0) a[i] = -1;
            else a[i] = 1;
            cnt--;
        }
        if(a[i] == 1) cout << '(';
        else cout << ')';
    }
    cout << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...