답안 #67341

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
67341 2018-08-14T03:32:36 Z MatheusLealV 괄호 문자열 (CEOI16_match) C++17
37 / 100
2000 ms 26392 KB
#include <bits/stdc++.h>
#define N 100050
#define f first
#define s second
using namespace std;
typedef pair<int, int> pii;

int n, v[N];

string s;

char resp[N];

inline bool solve(int l, int r)
{
	if(r < l) return 1;

	if(r - l == 1)
	{
		resp[l] = '(', resp[r] = ')';

		return (v[l] == v[r]);
	}

	if(l == r) return 0;

	stack<int> open;

	for(int j = r; j > l; j--)
	{
		if(!open.empty())
		{
			int t = open.top();

			if(t == v[j]) open.pop();

			else open.push(v[j]);
		}

		else
		{
			if(v[l] == v[j])
			{
				resp[l] = '(', resp[j] = ')';

				return (solve(l + 1, j - 1) and solve(j + 1, r));
			}

			open.push(v[j]);
		}
	}

	return 0;
}

int main()
{
	ios::sync_with_stdio(false); cin.tie(0);

	cin>>s;

	n = s.size();

	for(int i = 1; i <= n; i++) v[i] = s[i - 1] - 'a';

	if(solve(1, n))
	{
		for(int i = 1; i<= n; i++) cout<<resp[i];

		cout<<"\n";
	}

	else cout<<"-1\n";
}
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 3 ms 452 KB Output is correct
3 Correct 3 ms 452 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 3 ms 452 KB Output is correct
3 Correct 3 ms 452 KB Output is correct
4 Correct 3 ms 524 KB Output is correct
5 Correct 3 ms 572 KB Output is correct
6 Correct 3 ms 1004 KB Output is correct
7 Correct 3 ms 1004 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 3 ms 452 KB Output is correct
3 Correct 3 ms 452 KB Output is correct
4 Correct 3 ms 524 KB Output is correct
5 Correct 3 ms 572 KB Output is correct
6 Correct 3 ms 1004 KB Output is correct
7 Correct 3 ms 1004 KB Output is correct
8 Correct 5 ms 1004 KB Output is correct
9 Correct 15 ms 2108 KB Output is correct
10 Correct 7 ms 2108 KB Output is correct
11 Correct 12 ms 2932 KB Output is correct
12 Correct 133 ms 14168 KB Output is correct
13 Correct 68 ms 15168 KB Output is correct
14 Correct 785 ms 26136 KB Output is correct
15 Correct 37 ms 26136 KB Output is correct
16 Correct 35 ms 26136 KB Output is correct
17 Correct 118 ms 26392 KB Output is correct
18 Correct 32 ms 26392 KB Output is correct
19 Correct 1239 ms 26392 KB Output is correct
20 Correct 514 ms 26392 KB Output is correct
21 Execution timed out 2043 ms 26392 KB Time limit exceeded