제출 #1293800

#제출 시각아이디문제언어결과실행 시간메모리
1293800zeyd123괄호 문자열 (CEOI16_match)C++20
0 / 100
0 ms332 KiB
#include <bits/stdc++.h> using namespace std; /* ---===ASCII help===--- '0' -> 48 '9' -> 57 'A' -> 65 'Z' -> 90 'a' -> 97 'z' -> 122 */ const long long mod = 1e9 + 7; void solve() { string s; cin >> s; int n = s.size(); if (n % 2 == 1) { cout << -1 << "\n"; return; } vector<int> freq(26, 0); for (char c : s) freq[c - 'a']++; vector<vector<int>> st(26); string ans(n, '?'); for (int i = 0; i < n; i++) { int c = s[i] - 'a'; freq[c]--; if (freq[c] > 0) { ans[i] = '('; st[c].push_back(i); } else { if (st[c].empty()) { cout << -1 << "\n"; return; } ans[i] = ')'; st[c].pop_back(); } } for (int i = 0; i < 26; i++) { if (!st[i].empty()) { cout << -1 << "\n"; return; } } int cnt = 0; for (char c : ans) { if (c == '(') cnt++; else cnt--; if (cnt < 0) { cout << -1 << "\n"; return; } } if (cnt != 0) { cout << -1 << "\n"; return; } cout << ans << "\n"; } int main() { int t = 1; //cin >> t; while (t--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...