제출 #442564

#제출 시각아이디문제언어결과실행 시간메모리
442564fskaricaZagrade (COI20_zagrade)C++14
100 / 100
1119 ms1084 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define fi first
#define se second

const int MAX = 1e5 + 10;
int n, q;
int x;
vector <int> v;
int arr[MAX];

int main() {
    cin >> n >> q;

    v.push_back(1);

    for (int i = 2; i <= n; i++) {
        if (v.size() == 0) {
            v.push_back(i);
            continue;
        }

        cout << "? " << v.back() << " " << i << endl;
        cin >> x;

        if  (x == 0) {
            v.push_back(i);
        }
        else {
            arr[i] = 2;
            arr[v.back()] = 1;
            v.pop_back();
        }
    }

    int cnt = 0;
    for (int i = 1; i <= n; i++) {
        if (arr[i] == 0) {
            cnt++;
        }
    }
    cnt /= 2;


    cout << "! ";
    for (int i = 1; i <= n; i++) {
        if (arr[i] == 1) {
            cout << "(";
        }
        else if (arr[i] == 2) {
            cout << ")";
        }
        else {
            if (cnt) {
                cout << ")";
                cnt--;
            }
            else {
                cout << "(";
            }
        }
    }
    cout << 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...