#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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |