Submission #1293857

#TimeUsernameProblemLanguageResultExecution timeMemory
1293857ayxanesedzade10괄호 문자열 (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...