#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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |