제출 #775708

#제출 시각아이디문제언어결과실행 시간메모리
775708rainboyGood Game (CCO22_day2problem3)C11
0 / 25
1 ms212 KiB
#include <stdio.h>

#define N	1000000

int main() {
	static char cc[N + 1];
	static int ll[N], rr[N], ii[N], kk[N];
	int n, m, cnt, h, h_, i, j, s, d;

	scanf("%d%s", &n, cc);
	cnt = 0;
	while (n > 0) {
		m = 0;
		for (i = 0; i + 1 < n; i = j) {
			j = i + 1;
			while (j < n && cc[j] == cc[i])
				j++;
			if (j - i > 1)
				ll[m] = i, rr[m] = j - 1, m++;
		}
		if (m == 0) {
			printf("-1\n");
			return 0;
		}
		s = (ll[0] + 1) + (n - rr[m - 1]);
		for (h = 0; h + 1 < m; h++)
			s += ll[h + 1] - rr[h];
		if (s % 2 == 0) {
			if (m == 1)
				h_ = 0;
			else {
				h_ = ll[0] > 0 ? 0 : 1;
				for (h = -1; h < m; h++) {
					d = (h + 1 == m ? n : ll[h + 1]) - (h < 0 ? -1 : rr[h]) - (h < 0 || h + 1 == m ? 1 : 0);
					if (d == s / 2 - 1) {
						if (h == -1)
							h_ = 0;
						else if (h != 0)
							h_ = h;
						break;
					}
				}
			}
		} else {
			if ((ll[0] + 1) + (n - rr[m - 1]) == s / 2 + 1)
				h_ = 0;
			else {
				h_ = 0;
				for (h = 0; h + 1 < m; h++) {
					d = ll[h + 1] - rr[h];
					if (d == s / 2 - 1) {
						h_ = h;
						break;
					}
				}
			}
		}
		if ((rr[h_] - ll[h_] + 1) % 2 == 0) {
			ii[cnt] = ll[h_], kk[cnt] = 2, cnt++;
			n -= 2;
			for (i = ll[h_]; i < n; i++)
				cc[i] = cc[i + 2];
			cc[n] = 0;
		} else {
			ii[cnt] = ll[h_], kk[cnt] = 3, cnt++;
			n -= 3;
			for (i = ll[h_]; i < n; i++)
				cc[i] = cc[i + 3];
			cc[n] = 0;
		}
	}
	printf("%d\n", cnt);
	for (h = 0; h < cnt; h++)
		printf("%d %d\n", ii[h] + 1, kk[h]);
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

Main.c: In function 'main':
Main.c:10:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |  scanf("%d%s", &n, cc);
      |  ^~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...