제출 #1241737

#제출 시각아이디문제언어결과실행 시간메모리
1241737kaiboy괄호 문자열 (CEOI16_match)C++20
37 / 100
2029 ms1040 KiB
#include <algorithm>
#include <iostream>
#include <cstring>
#include <vector>

using namespace std;

const int N = 100000;
const int A = 26;

char aa[N + 1], bb[N + 1];
int qu[N], qu_[N];

int main() {
	cin >> aa;
	int n = strlen(aa);
	int cnt = 0;
	for (int i = 0; i < n; i++) {
		bb[qu[cnt++] = i] = '(';
		int cnt_ = cnt;
		for (int h = 0; h < cnt_; h++)
			qu_[h] = qu[h];
		for (int j = i + 1; j < n; j++)
			if (cnt_ && aa[j] == aa[qu_[cnt_ - 1]])
				cnt_--;
			else
				qu_[cnt_++] = j;
		if (cnt_) {
			bb[i] = ')', cnt--;
			if (!cnt || aa[i] != aa[qu[cnt - 1]]) {
				cout << "-1\n";
				return 0;
			}
			cnt--;
		}
	}
	bb[n] = '\0';
	cout << bb << '\n';
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...