제출 #63056

#제출 시각아이디문제언어결과실행 시간메모리
63056bazsi700괄호 문자열 (CEOI16_match)C++14
10 / 100
32 ms508 KiB
#include <bits/stdc++.h> using namespace std; #define MOD 1000000007 #define ll long long int #define vi vector<int> #define vii vector< vector<int> > #define PI 3.1415926535897932384626433832795 #define INF 9223372036854775807LL //13:45 int main() { ios::sync_with_stdio(false); cin.tie(NULL); string s; cin >> s; int n = s.length(); vector<int> cnt(260,0); for(int i = 0; i < n; i++) { cnt[s.at(i)]++; } for(int i = 'a'; i <= 'z'; i++) { if(cnt[i]%2) { cout << -1; return 0; } } if(n > 18) { return 0; } string str = "-1"; for(int mask = 0; mask < (1<<n); mask++) { stack<int> st; bool good = true; string currstr = ""; for(int i = 0; i < n; i++) { if(mask&(1<<i)) { st.push(i); currstr+= '('; } else { currstr+= ')'; if(st.empty()) { good = false; break; } if(s.at(st.top()) != s.at(i)) { good = false; break; } st.pop(); } } if(!st.empty()) { good = false; } if(good) { if(str.at(0) == '-' || str > currstr) { str = currstr; } } } cout << str; vector<int> cnt2(260,0); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...