Submission #745428

#TimeUsernameProblemLanguageResultExecution timeMemory
745428Tenis0206Match (CEOI16_match)C++11
10 / 100
1 ms340 KiB
#include <bits/stdc++.h> using namespace std; const int nmax = 1e5; int n; int v[nmax + 5]; bool ok; char rez[nmax + 5]; int fr[nmax + 5]; void solve(int st, int dr) { if(st > dr) { return; } int poz = 0; for(int i=st+1;i<=dr;i++) { if(v[i]==v[st]) { poz = i; } } if(!poz) { ok = false; return; } rez[st] = '('; rez[poz] = ')'; solve(st+1,poz-1); solve(poz+1,dr); } int main() { ios::sync_with_stdio(false); cin.tie(0); //freopen("match.in","r",stdin); //freopen("match.out","w",stdout); string s; cin>>s; n = s.size(); for(int i=1;i<=n;i++) { v[i] = s[i - 1]; ++fr[v[i]]; } ok = true; for(int i=1;i<=n;i++) { if(fr[v[i]] % 2 == 1) { ok = false; } } if(!ok) { cout<<-1<<'\n'; return 0; } solve(1,n); if(!ok) { cout<<-1<<'\n'; return 0; } for(int i=1;i<=n;i++) { cout<<rez[i]; } cout<<'\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...