답안 #198206

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
198206 2020-01-25T06:28:12 Z alishahali1382 괄호 문자열 (CEOI16_match) C++14
37 / 100
2000 ms 512 KB
#include <bits/stdc++.h>
#pragma GCC optimize ("O2")
#pragma GCC optimize ("unroll-loops")
//#pragma GCC optimize("no-stack-protector,fast-math")

using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<pii, int> piii;
typedef pair<ll, ll> pll;
#define debug(x) cerr<<#x<<'='<<(x)<<endl;
#define debugp(x) cerr<<#x<<"= {"<<(x.first)<<", "<<(x.second)<<"}"<<endl;
#define debug2(x, y) cerr<<"{"<<#x<<", "<<#y<<"} = {"<<(x)<<", "<<(y)<<"}"<<endl;
#define debugv(v) cerr<<#v<<" : ";for (auto x:v) cerr<<x<<' ';cerr<<endl;
#define all(x) x.begin(), x.end()
#define pb push_back
#define kill(x) return cout<<x<<'\n', 0;

const ld eps=1e-7;
const int inf=1000000010;
const ll INF=10000000000000010LL;
const int mod = 1000000007;
const int MAXN = 100010, LOG=20;

int n, m, k, u, v, x, y, t, a, b;
int A[MAXN];
vector<int> vec[26];
char ans[MAXN];
string S;

bool check(int len){
	stack<char> stk;
	for (int i=0; i<n; i++){
		char ch=S[i];
		if (i<=len){
			if (ans[i]=='(') stk.push(ch);
			else if (stk.empty() || stk.top()!=ch) return 0;
			else stk.pop();
			continue ;
		}
		if (stk.empty() || stk.top()!=ch) stk.push(ch);
		else stk.pop();
	}
	return stk.empty();
}

int main(){
	ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	//freopen("match.in", "r", stdin);
	//freopen("match.out", "w", stdout);
	cin>>S;
	n=S.size();
	if (n&1 || !check(-1)) kill(-1)
	for (int i=0; i<n; i++){
		ans[i]='(';
		if (!check(i)) ans[i]=')';
	}
	for (int i=0; i<n; i++) cout<<ans[i];
	
	return 0;
}
/*
abbabbaa
*/
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 6 ms 376 KB Output is correct
6 Correct 10 ms 376 KB Output is correct
7 Correct 21 ms 376 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 6 ms 376 KB Output is correct
6 Correct 10 ms 376 KB Output is correct
7 Correct 21 ms 376 KB Output is correct
8 Correct 283 ms 396 KB Output is correct
9 Correct 297 ms 376 KB Output is correct
10 Correct 233 ms 504 KB Output is correct
11 Correct 178 ms 508 KB Output is correct
12 Execution timed out 2009 ms 512 KB Time limit exceeded
13 Halted 0 ms 0 KB -