Submission #466148

# Submission time Handle Problem Language Result Execution time Memory
466148 2021-08-18T06:57:16 Z fuad27 Match (CEOI16_match) C++17
10 / 100
240 ms 524292 KB
#include<bits/stdc++.h>
using namespace std;
#define MAXN 200000
string s;
int n, op[MAXN][26];
char ans[MAXN];
string solve(int l, int r) {
    if (l > r) return "";
    return '(' + solve(l + 1, op[r][s[l] - 97] - 1) + ')' + solve(op[r][s[l] - 97] + 1, r);
}
int main () {/*
	freopen("match.in", "r", stdin);
	freopen("match.out", "w", stdout);*/
	cin >> s;
	n=s.size();
	stack<int> st;
	for(int i = 0;i<n;i++) {
		if(st.size() and s[i]==st.top())st.pop();
		else st.push(s[i]);
		for(int j = 0;j<26;j++) {
			if(j == s[i]-97)op[i][j] = i;
			else if(i > 0 && op[i][s[i]-97])op[i][j] = op[op[i-1][s[i]-97]-1][j];
			else op[i][j] = -1;
		}
	}
	if(st.size())cout<< -1;
	else {
		cout<<solve(0, n-1)<<endl;
	}
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Runtime error 240 ms 524292 KB Execution killed with signal 9
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Runtime error 240 ms 524292 KB Execution killed with signal 9
5 Halted 0 ms 0 KB -