Submission #608786

#TimeUsernameProblemLanguageResultExecution timeMemory
608786farukMatch (CEOI16_match)C++17
37 / 100
2085 ms960 KiB
#include <bits/stdc++.h> #define pii pair<int, int> #define ll long long #define ld long double using namespace std; int n; string s; bool possible(stack<char> open, int idx) { for (int i = idx; i < n; i++) { if (!open.empty() && open.top() == s[i]) open.pop(); else open.push(s[i]); } return open.empty(); } int main() { ios_base::sync_with_stdio(false); cin.tie(0); //freopen("match.in", "r", stdin); //freopen("match.out", "w", stdout); cin >> s; n = s.size(); if (!possible(stack<char>(), 0)) { cout << "-1\n"; return 0; } vector<vector<int> > where(26); for (int i = 0; i < n; i++) { where[s[i] - 'a'].push_back(i); } string out = ""; stack<char> open; for (int i = 0; i < n; i++) { if (!open.empty() && s[i] == open.top()) { open.push(s[i]); if (possible(open, i + 1)) out += '('; else out += ')', open.pop(), open.pop(); } else open.push(s[i]), out += '('; } cout << out << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...