제출 #1235553

#제출 시각아이디문제언어결과실행 시간메모리
1235553HanksburgerZagrade (COI20_zagrade)C++20
100 / 100
260 ms5212 KiB
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n, q, cnt=0;
    cin >> n >> q;
    vector<char> ans(n, 0);
    set<int> s;
    for (int i=0; i<n; i++)
        s.insert(i);
    for (auto it=s.begin(); it!=s.end();)
    {
        if (it==s.begin())
        {
            it++;
            continue;
        }
        cout << "? " << *prev(it)+1 << ' ' << *it+1 << '\n';
        fflush(stdout);
        int x;
        cin >> x;
        if (x)
        {
            ans[*prev(it)]='(';
            ans[*it]=')';
            cnt++;
            it++;
            s.erase(prev(prev(it)));
            s.erase(prev(it));
        }
        else
            it++;
    }
    cnt=n/2-cnt;
    cout << "! ";
    for (int i=0; i<n; i++)
    {
        if (ans[i])
            cout << ans[i];
        else if (cnt)
        {
            cout << ')';
            cnt--;
        }
        else
            cout << '(';
    }
    fflush(stdout);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...