Submission #61212

# Submission time Handle Problem Language Result Execution time Memory
61212 2018-07-25T11:25:57 Z junodeveloper Match (CEOI16_match) C++17
0 / 100
3 ms 536 KB
#include <bits/stdc++.h>
using namespace std;
char s[100010],a[100010];
int pre[100010][26];
void solve(int l, int r) {
	if(l > r) return;
	if(pre[r][s[l]-'a'] <= l) { puts("-1"); exit(0); }
	a[l] = '(', a[pre[r][s[l]-'a']] = ')';
	solve(l+1, pre[r][s[l]-'a']-1), solve(pre[r][s[l]-'a']+1, r);
}
int main() {
	scanf("%s", s);
	int n = strlen(s);
	for(int i=0; i<n; i++) {
		for(int j=0; j<26; j++)
			if(j == s[i]-'a') pre[i][j] = i;
			else if(i && pre[i-1][s[i]-'a']) pre[i][j] = pre[pre[i-1][s[i]-'a']-1][j];
			else pre[i][j] = -1;
	}
	solve(0,n-1);
	puts(a);
	return 0;
}

Compilation message

match.cpp: In function 'int main()':
match.cpp:12:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s", s);
  ~~~~~^~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 3 ms 496 KB Output is correct
3 Runtime error 3 ms 536 KB Execution killed with signal 11 (could be triggered by violating memory limits)
# Verdict Execution time Memory Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 3 ms 496 KB Output is correct
3 Runtime error 3 ms 536 KB Execution killed with signal 11 (could be triggered by violating memory limits)
# Verdict Execution time Memory Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 3 ms 496 KB Output is correct
3 Runtime error 3 ms 536 KB Execution killed with signal 11 (could be triggered by violating memory limits)