제출 #847148

#제출 시각아이디문제언어결과실행 시간메모리
847148PacybwoahSuperpozicija (COCI22_superpozicija)C++17
0 / 110
338 ms540 KiB
#include<iostream>
#include<vector>
#include<string>
#include<utility>
#include<algorithm>
using namespace std;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        string s;
        cin>>s;
        vector<pair<int,int> > vec(n);
        for(int i=0;i<n;i++) cin>>vec[i].first>>vec[i].second;
        if(n&1){
            cout<<"-1\n";
            continue;
        }
        if(n<=10){
            bool ff=0;
            for(int i=0;i<(1<<n);i++){
                string tmp;
                vector<int> tmpp;
                for(int j=0;j<n;j++){
                    if(i&(1<<j)) tmpp.push_back(vec[j].second);
                    else tmpp.push_back(vec[j].first);
                }
                sort(tmpp.begin(),tmpp.end());
                for(auto x:tmpp) tmp+=s[x-1];
                int now=0;
                bool flag=1;
                for(int j=0;j<n;j++){
                    if(tmp[j]=='(') now++;
                    else now--;
                    if(now<0){
                        flag=0;
                        break;
                    }
                }
                if(flag&&now==0){
                    for(int j=0;j<n;j++){
                        cout<<(i&1)<<" ";
                        i>>=1;
                    }
                    ff=1;
                    cout<<"\n";
                    break;
                }
            }
            if(!ff) cout<<-1<<"\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...