답안 #61873

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
61873 2018-07-27T03:50:30 Z ainta(#1792) parentrises (BOI18_parentrises) C++11
0 / 100
3 ms 480 KB
#include<cstdio>
#include<algorithm>
#define N_ 1010000
using namespace std;
char p[N_];
int n, S[N_], v[N_][2];
void Do(int ck) {
	int i;
	S[0] = 0;
	for (i = 0; i < n; i++) {
		if (p[i] == '(')S[i + 1] = S[i] + 1;
		else S[i + 1] = S[i] - 1;
	}
	int Mn = 0;
	for (i = 1; i <= n; i++) {
		if (Mn > S[i]) {
			Mn = S[i];
			v[i - 1][ck] = 1;
		}
	}
	int t = S[n] - Mn;
	for (i = n - 1; i >= 0 && t; i--) {
		if (p[i] == '(') {
			t--;
			v[i][ck] = 1;
		}
	}
}
void Solve1() {
	int TC, i;
	scanf("%d", &TC);
	while (TC--) {
		scanf("%s", p);
		for (i = 0; p[i]; i++)v[i][0] = v[i][1] = 0;
		n = i;
		Do(0);
		reverse(p, p + n);
		for (i = 0; i < n; i++)p[i] = '(' + ')' - p[i];
		Do(1);
		for (i = 0; i < n; i++) {
			if (v[i][0] && v[n - i - 1][1]) {
				puts("impossible");
				break;
			}
		}
		if (i == n) {
			for (i = 0; i < n; i++) {
				if (v[i][0])printf("B");
				else if (v[n - i - 1][1])printf("R");
				else printf("G");
			}
			puts("");
		}
	}
}
void Solve2() {
}
int main() {
	//freopen("input.txt", "r", stdin);
	int ck;
	scanf("%d", &ck);
	if (ck == 1) {
		Solve1();
	}
	else {
		Solve2();
	}
}

Compilation message

parentrises.cpp: In function 'void Solve1()':
parentrises.cpp:31:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &TC);
  ~~~~~^~~~~~~~~~~
parentrises.cpp:33:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%s", p);
   ~~~~~^~~~~~~~~
parentrises.cpp: In function 'int main()':
parentrises.cpp:61:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &ck);
  ~~~~~^~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 248 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 356 KB Output is correct
2 Incorrect 2 ms 432 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 356 KB Output is correct
2 Incorrect 2 ms 432 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 356 KB Output is correct
2 Incorrect 2 ms 432 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 480 KB Unexpected end of file - int32 expected
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 480 KB Unexpected end of file - int32 expected
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 480 KB Unexpected end of file - int32 expected