Submission #1117704

#TimeUsernameProblemLanguageResultExecution timeMemory
1117704vjudge1괄호 문자열 (CEOI16_match)C++17
0 / 100
1 ms336 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
    string s;
    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){
            for (int j = 0; j < n; j++){
                if (!can) break;
                int val = i & (1<<j);
                if (val == 0){
                    cout<<'(';
                }
                else{
                    cout<<')';
                }
            }
            return 0;
        }
    }
    cout<<-1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...