제출 #946702

#제출 시각아이디문제언어결과실행 시간메모리
946702Darren0724괄호 문자열 (CEOI16_match)C++17
10 / 100
1 ms348 KiB
#include <bits/stdc++.h> using namespace std; #define LCBorz ios_base::sync_with_stdio(false); cin.tie(0); #define int long long #define all(x) x.begin(), x.end() #define endl '\n' const int N=200005; const int INF=1e18; vector<int> a[26]; vector<int> v; string ans; void solve(int l,int r){ if(l>=r)return; auto it=--lower_bound(all(a[v[l]]),r); if(*it<=l){ cout<<-1<<endl; exit(0); } ans[l]='('; ans[*it]=')'; solve(l+1,*it); solve(*it+1,r); } int32_t main() { LCBorz; string s;cin>>s; int n=s.size(); v.resize(n); ans.assign(n,'0'); for(int i=0;i<n;i++){ int p=s[i]-'a'; v[i]=p; a[p].push_back(i); } solve(0,n); cout<<ans<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...