Submission #1293800

#TimeUsernameProblemLanguageResultExecution timeMemory
1293800zeyd123Match (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...