제출 #930259

#제출 시각아이디문제언어결과실행 시간메모리
930259ttamx괄호 문자열 (CEOI16_match)C++14
10 / 100
0 ms348 KiB
#include<bits/stdc++.h> using namespace std; const int N=1e5+5; int n; int dp[N][20]; string t,ans; stack<char> s; void solve(int l,int r){ if(l>r)return; int m=dp[r][t[l]-'a']; ans[m]=')'; solve(l+1,m-1); solve(m+1,r); } int main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> t; int n=t.size(); for(auto x:t){ if(!s.empty()&&x==s.top())s.pop(); else s.emplace(x); } if(!s.empty())cout << -1,exit(0); ans.assign(n,'('); for(int i=1;i<n;i++){ for(int j=0;j<26;j++)dp[i][j]=dp[i-1][j]; dp[i][t[i]-'a']=i; } solve(0,n-1); cout << ans; }

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

match.cpp: In function 'int main()':
match.cpp:31:48: warning: iteration 20 invokes undefined behavior [-Waggressive-loop-optimizations]
   31 |         for(int j=0;j<26;j++)dp[i][j]=dp[i-1][j];
      |                                       ~~~~~~~~~^
match.cpp:31:22: note: within this loop
   31 |         for(int j=0;j<26;j++)dp[i][j]=dp[i-1][j];
      |                     ~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...