제출 #1006058

#제출 시각아이디문제언어결과실행 시간메모리
1006058MarwenElarbiZagrade (COI20_zagrade)C++17
100 / 100
602 ms1572 KiB
#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#define fi first
#define se second
#define ll long long
#define pb push_back
#define ii pair<int,int>
const int nax=(1<<16);
int main()
{
    int n,q;
    cin>>n>>q;
    stack<int> st;
    st.push(1);
    int ans[n+1];
    memset(ans,-1,sizeof ans);
    for (int i = 2; i <= n; ++i)
    {
        if(!st.empty()){
            cout <<"? "<< st.top() << " " << i<<endl;
            int c;
            cin>>c;
            if(c==1){
                ans[st.top()]=0;
                ans[i]=1;
                st.pop();
            }else st.push(i);
        }else st.push(i);
        
    }
    int m=st.size();
    for (int i = 0; i < m/2; ++i)
    {
        ans[st.top()]=0;
        st.pop();
    }
    for (int i = 0; i < m/2; ++i)
    {
        ans[st.top()]=1;
        st.pop();
    }
    cout << "! ";
    for (int i = 1; i <= n; ++i)
    {
        if(ans[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...