Submission #1117712

#TimeUsernameProblemLanguageResultExecution timeMemory
1117712vjudge1Match (CEOI16_match)C++17
10 / 100
1231 ms336 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
    string s, ans = ")";
    cin>>s;
    int n = s.size();
    for (int i = (1<<n) - 1; i >= 0; i--){
        deque<int> de;
        int pr = 0, can = 1;
        for (int j = 0; j < n; j++){
            int val = i & (1<<j);
            if (val != 0) val = -1;
            else val = 1;
            pr += val;
            if (pr < 0){
                can = 0;
                break;
            }
        }
        for (int j = 0; j < n; j++){
            int val = i & (1<<j);
            if (val != 0) val = -1;
            else val = 1;
            pr += val;
            if (pr < 0){
                can = 0;
                break;
            }
        }
        for (int j = 0; j < n; j++){
            if (!can) break;
            int val = i & (1<<j);
            if (val == 0){
                de.push_back(j);
            }
            else{
                if (s[de.back()] != s[j]){
                    can = 0;
                    break;
                }
                de.pop_back();
            }
        }
        if (de.size() != 0) can = 0;
        if (can){
            string cmp;
            for (int j = 0; j < n; j++){
                if (!can) break;
                int val = i & (1<<j);
                if (val == 0){
                    cmp += '(';
                }
                else{
                    cmp += ')';
                }
            }
            ans = min(ans, cmp);
        }
    }
    if (ans == ")"){
        cout<<-1;
    }
    else{
        cout<<ans;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...