Submission #231420

#TimeUsernameProblemLanguageResultExecution timeMemory
231420nicolaalexandra괄호 문자열 (CEOI16_match)C++14
37 / 100
2089 ms24696 KiB
#include <bits/stdc++.h> #define DIM 100010 using namespace std; char v[DIM],sol[DIM]; deque <char> s,d; int n,i; int verif (int poz){ for (int i=poz;i<=n;i++){ if (!d.empty() && d.back() == v[i]) d.pop_back(); else d.push_back(v[i]); } return d.empty(); } void solve (int st, int dr){ /// in st pun ( si trb sa gasesc ) if (st >= dr) return; if (st == dr-1){ sol[st] = '('; sol[dr] = ')'; return; } sol[st] = '('; int val = v[st] - 'a'; int i; deque <char> s; for (i=dr;i>st;i--){ if (s.empty() && v[i] == v[st]) break; if (!s.empty() && s.back() == v[i]) s.pop_back(); else s.push_back(v[i]); } sol[i] = ')'; solve (st+1,i-1); solve (i+1,dr); } int main (){ //ifstream cin ("match.in"); // ofstream cout ("match.out"); cin>>v+1; n = strlen (v+1); /// verific daca am solutie s.push_back(v[1]); for (i=2;i<=n;i++){ if (!s.empty() && s.back() == v[i]) s.pop_back(); else s.push_back(v[i]); } if (!s.empty()){ cout<<-1; return 0; } /*for (i=1;i<=n;i++) poz[v[i]-'a'].push_back(i); for (i=0;i<26;i++) reverse (poz[i].begin(),poz[i].end());*/ solve (1,n); for (i=1;i<=n;i++) cout<<sol[i]; return 0; }

Compilation message (stderr)

match.cpp: In function 'void solve(int, int)':
match.cpp:29:9: warning: unused variable 'val' [-Wunused-variable]
     int val = v[st] - 'a';
         ^~~
match.cpp: In function 'int main()':
match.cpp:50:11: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
     cin>>v+1;
          ~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...