Submission #1190010

#TimeUsernameProblemLanguageResultExecution timeMemory
1190010Dan4LifeMatch (CEOI16_match)C++20
100 / 100
10 ms12356 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back #define sz(a) (int)a.size() #define all(a) begin(a),end(a) using ll = long long; template<class T=int> using ar2 = array<T,2>; template<class T=int> using ar3 = array<T,3>; const int mxN = (int)2e5+10; const int mxLg = 20; const int INF = (int)1e9+1; const ll LINF = (int)2e18+1; int n; string s,ans; int pr[mxN][26]; void recur(int l, int r){ if(l>r) return; int x = pr[r][s[l]]; if(x<=l){cout<<-1<<'\n';exit(0);} ans[x-1] = ')'; recur(l+1,x-1); recur(x+1,r); } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin >> s; n=sz(s); for(auto &u:s)u-='a'; s='@'+s; for(int i = 1; i <= n; i++){ for(int j = 0; j < 26; j++){ if(s[i]==j) pr[i][j]=i; else if(pr[i-1][s[i]])pr[i][j]=pr[pr[i-1][s[i]]-1][j]; } } ans = string(n,'('); recur(1,n); cout << ans << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...