제출 #1293877

#제출 시각아이디문제언어결과실행 시간메모리
1293877orucMatch (CEOI16_match)C++20
37 / 100
2096 ms580 KiB
/// designed by Oruc Cabbarli #pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; #define int long long #define vi vector<int> #define pii pair<int,int> #define vpii vector<pii> #define fi first #define se second #define pb push_back #define all(v) v.begin(), v.end() #define endl '\n' template<typename T>void show(vector<T> &v){ for(auto &i: v){ cout << i << ' '; } cout << endl; } const int N = 1e5+5; const int INF = 1e18; const int LOG = 20; const int MOD = 1e9+7; int check(string s, string b, int in){ stack<char> st; for(int i = 0; i < in; i++){ if(b[i] == '('){ st.push(s[i]); } else{ if(st.empty() || st.top() != s[i]) return -1; st.pop(); } } for(int i = in; i < s.size(); i++){ if(!st.empty() && st.top() == s[i]){ st.pop(); } else{ st.push(s[i]); } } if(st.empty()){ return 1; } return 0; } void solve(){ string s; cin >> s; int n = s.size(); vector<set<int>> idx(26); if(n % 2){ cout << -1 << endl; return; } string b = string(n, ' '); for(int i = 0; i < n; i++){ b[i] = '('; if(check(s,b,i+1) == -1){ cout << -1 << endl; return; } else if(check(s,b,i+1) == 0){ b[i] = ')'; } } cout << b << endl; } signed main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int t = 1; //cin >> t; for(int i = 1; i <= t; i++){ //cout << "Case #" << i << ": "; solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...