Submission #1293857

#TimeUsernameProblemLanguageResultExecution timeMemory
1293857ayxanesedzade10Match (CEOI16_match)C++20
10 / 100
2095 ms572 KiB
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define all(x) x.begin(),x.end()
#define ld long double
using namespace std;
const ll sz=1e5+100;
int main()
{
    string s;cin>>s;
    ll n=s.size();
    s='*'+s;
    string ans="";
    for(int i=0;i<=n;i++) ans+=')';
    for(int mask=0;mask<(1<<n);mask++){
        string s1="*";
        for(int j=0;j<n;j++){
            if(mask&(1<<j)){
                s1+='(';
            }
            else s1+=')';
        }
        stack<ll>st;
        ll ok=0;
        for(int i=1;i<=n;i++){
            if(s1[i]=='(') st.push(i);
            else{
                if(st.empty()){ok=1;break;}
                if(s[st.top()]!=s[i]){ok=1;break;}
                st.pop();
            }
        }
        if(st.size()>0) ok=1;
        if(!ok){
            //cout<<s1<<endl;
            for(int i=1;i<=n;i++){
                if(ans[i]!=s1[i]){
                    if(ans[i]==')' and s1[i]=='('){
                        ans=s1;
                    }
                    break;
                }
            }
        }
    }
    if(ans[1]==')') cout<<-1<<endl;
    else {
        for(int i=1;i<=n;i++) cout<<ans[i];
        cout<<endl;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...