답안 #544743

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
544743 2022-04-02T16:22:29 Z rainboy parentrises (BOI18_parentrises) C
0 / 100
0 ms 296 KB
#include <stdio.h>
#include <string.h>

#define N	1000000

int main() {
	int t;

	scanf("%d", &t);
	while (t--) {
		static char cc[N + 1], cc_[N + 1];
		static int qu[N];
		int n, i, d, cnt, bad;

		scanf("%s", cc), n = strlen(cc);
		memset(cc_, 0, (n + 1) * sizeof *cc_);
		d = 0, cnt = 0, bad = 0;
		for (i = 0; i < n; i++)
			if (cc[i] == '(')
				d++, qu[cnt++] = i;
			else if (d-- == 0) {
				if (cnt == 0) {
					bad = 1;
					break;
				}
				d = 0, cc_[qu[--cnt]] = 'G';
			}
		if (bad) {
			printf("impossible\n");
			continue;
		}
		d = 0, cnt = 0, bad = 0;
		for (i = n - 1; i >= 0; i--)
			if (cc[i] == ')')
				d++, qu[cnt++] = i;
			else {
				if (d-- == 0) {
					if (cnt == 0) {
						bad = 1;
						break;
					}
					d = 0, cc_[qu[--cnt]] = 'G';
				}
				if (cc_[i] == 'G' && d-- == 0) {
					if (cnt == 0) {
						bad = 1;
						break;
					}
					d = 0, cc_[qu[--cnt]] = 'G';
				}
			}
		if (bad) {
			printf("impossible\n");
			continue;
		}
		cnt = 0;
		for (i = 0; i < n; i++)
			if (cc_[i] == 'G')
				cnt += cc[i] == '(' ? 2 : -2;
			else
				cc_[i] = (cc[i] == '(' ? cnt++ : --cnt) % 2 == 0 ? 'R' : 'B';
		printf("%s\n", cc_);
	}
	return 0;
}

Compilation message

parentrises.c: In function 'main':
parentrises.c:9:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
    9 |  scanf("%d", &t);
      |  ^~~~~~~~~~~~~~~
parentrises.c:15:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |   scanf("%s", cc), n = strlen(cc);
      |   ^~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Unexpected end of file - token expected
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Unexpected end of file - token expected
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Unexpected end of file - token expected
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 296 KB Expected integer, but "impossible" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 296 KB Expected integer, but "impossible" found
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 296 KB Expected integer, but "impossible" found
2 Halted 0 ms 0 KB -