제출 #773671

#제출 시각아이디문제언어결과실행 시간메모리
773671vjudge1Zagrade (COI20_zagrade)C++17
0 / 100
1 ms256 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define OYY 10000000005
#define mod 1000000007
char dizi[100005];
vector <int> q;
bool kes[100005];
vector <pair<pair<int,int>,int>> de;
int ko=0;

int sor(int x,int y){
    cout<<"? "<<x<<" "<<y<<" ";
    cout<<'\n';
    int m;cin>>m;
    cout<<'\n';
    de.push_back({{x,y},m});
    return m;
}

int32_t main(){
    int n,k;cin>>n>>k;
    dizi[1]='(';
    q.push_back(1);
    for(int i=2;i<=n;i++){
        if(q.size() && sor(q.back(),i)){
            dizi[i]=')';
            ko+=1;
            q.pop_back();
        }
        else{
            dizi[i]='(';
            q.push_back(i);
        }
    }
    k-=n-1;
    while(k>=0 && q.size()){
        int i;
       if(q.size())i=q[0];
        else i=2;
       for(;i<=n;i++){
            if(q.size() && sor(q.back(),i)){
                dizi[i]=')';
                //kes[i]=1;
                ko+=1;
                q.pop_back();
            }
            else{
                dizi[i]='(';
                q.push_back(i);
            }
        }
        k-=n-1;
    }
    /*int gec=q.size()/2;
    for(int i=0;i<=gec-1;i++){
        dizi[q[i]]=')';
    }*/
    cout<<"! ";
    for(int i=1;i<=n;i++)cout<<dizi[i]<<" ";
    cout<<'\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...