제출 #374555

#제출 시각아이디문제언어결과실행 시간메모리
374555Alex_tz307Zagrade (COI20_zagrade)C++17
100 / 100
1008 ms1292 KiB
#include <bits/stdc++.h>

using namespace std;

bool query(const int &i, const int &j) {
    cout << "? " << i + 1 << ' ' << j + 1 << endl;
    bool ans;
    cin >> ans;
    return ans;
}

int main() {
    int N, Q;
    cin >> N >> Q;
    string sol;
    sol.resize(N);
    vector<int> S;
    for(int i = 0; i < N; ++i) {
        if(S.empty()) {
            S.emplace_back(i);
            continue;
        }
        bool ans = query(S.back(), i);
        if(ans) {
            sol[S.back()] = '(';
            sol[i] = ')';
            S.pop_back();
        }
        else
            S.emplace_back(i);
    }
    for(int i = 0; i < (int)S.size(); ++i)
        if(i < (int)S.size() / 2)
            sol[S[i]] = ')';
        else
            sol[S[i]] = '(';
    cout << "! " << sol << 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...