제출 #231422

#제출 시각아이디문제언어결과실행 시간메모리
231422nicolaalexandra괄호 문자열 (CEOI16_match)C++14
100 / 100
1407 ms2048 KiB
#include <bits/stdc++.h> #define DIM 100010 using namespace std; char v[DIM],sol[DIM],s[DIM]; int n,i; 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, k = 0; for (i=dr;i>st;i--){ if (!k && v[i] == v[st]) break; if (k && s[k] == v[i]) k--; else s[++k] = 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 int k = 0; s[++k] = v[1]; for (i=2;i<=n;i++){ if (k && s[k] == v[i]) k--; else s[++k] = v[i]; } if (k){ 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; }

컴파일 시 표준 에러 (stderr) 메시지

match.cpp: In function 'void solve(int, int)':
match.cpp:18:9: warning: unused variable 'val' [-Wunused-variable]
     int val = v[st] - 'a';
         ^~~
match.cpp: In function 'int main()':
match.cpp:39: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...