Submission #75788738


Source Code Expand

Copy
#include <stdio.h>
#include <string.h>
char S[1123456];
int clist[1123456];
int main(void) {
int len, cnum = 0;
int i;
int acnt = 0;
int ans = 0;
if (scanf("%1123455s", S) != 1) return 1;
len = (int)strlen(S);
for (i = len - 1; i >= 0; i--) {
if (S[i] == 'C') clist[cnum++] = i;
}
for (i = 0; i < len; i++) {
switch (S[i]) {
case 'A':
acnt++;
break;
case 'B':
if (acnt > 0 && cnum > 0) {
ans++;
acnt--;
cnum--;
}
break;
case 'C':
if (cnum > 0 && clist[cnum - 1] == i) cnum--;
break;
}
}
printf("%d\n", ans);
return 0;
}
/*
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <stdio.h>
#include <string.h>

char S[1123456];

int clist[1123456];

int main(void) {
	int len, cnum = 0;
	int i;
	int acnt = 0;
	int ans = 0;
	if (scanf("%1123455s", S) != 1) return 1;
	len = (int)strlen(S);
	for (i = len - 1; i >= 0; i--) {
		if (S[i] == 'C') clist[cnum++] = i;
	}
	for (i = 0; i < len; i++) {
		switch (S[i]) {
			case 'A':
				acnt++;
				break;
			case 'B':
				if (acnt > 0 && cnum > 0) {
					ans++;
					acnt--;
					cnum--;
				}
				break;
			case 'C':
				if (cnum > 0 && clist[cnum - 1] == i) cnum--;
				break;
		}
	}
	printf("%d\n", ans);
	return 0;
}

/*

左から見ていく
それぞれの B について、可能な最も左の A, C を貪欲に割り当てる

*/

Submission Info

Submission Time
Task D - Take ABC 2
User mikecat
Language C23 (GCC 14.2.0)
Score 400
Code Size 756 Byte
Status AC
Exec Time 12 ms
Memory 6572 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 35
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 02_corner_00.txt, 02_corner_01.txt, 02_corner_02.txt, 02_corner_03.txt, 02_corner_04.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 0 ms 1592 KiB
00_sample_01.txt AC 0 ms 1612 KiB
00_sample_02.txt AC 0 ms 1580 KiB
01_test_00.txt AC 0 ms 1564 KiB
01_test_01.txt AC 0 ms 1580 KiB
01_test_02.txt AC 0 ms 1592 KiB
01_test_03.txt AC 10 ms 3524 KiB
01_test_04.txt AC 8 ms 3108 KiB
01_test_05.txt AC 11 ms 3620 KiB
01_test_06.txt AC 12 ms 3868 KiB
01_test_07.txt AC 12 ms 3836 KiB
01_test_08.txt AC 12 ms 3836 KiB
01_test_09.txt AC 12 ms 3868 KiB
01_test_10.txt AC 12 ms 3896 KiB
01_test_11.txt AC 12 ms 3836 KiB
01_test_12.txt AC 12 ms 3896 KiB
01_test_13.txt AC 12 ms 3780 KiB
01_test_14.txt AC 9 ms 3628 KiB
01_test_15.txt AC 9 ms 3764 KiB
01_test_16.txt AC 9 ms 3620 KiB
01_test_17.txt AC 12 ms 3652 KiB
01_test_18.txt AC 10 ms 3580 KiB
01_test_19.txt AC 12 ms 3884 KiB
01_test_20.txt AC 12 ms 3760 KiB
01_test_21.txt AC 12 ms 4020 KiB
01_test_22.txt AC 10 ms 3640 KiB
01_test_23.txt AC 11 ms 3788 KiB
01_test_24.txt AC 11 ms 3640 KiB
01_test_25.txt AC 12 ms 3768 KiB
01_test_26.txt AC 11 ms 3768 KiB
02_corner_00.txt AC 5 ms 3876 KiB
02_corner_01.txt AC 4 ms 3780 KiB
02_corner_02.txt AC 4 ms 2500 KiB
02_corner_03.txt AC 4 ms 2636 KiB
02_corner_04.txt AC 5 ms 6572 KiB


2026-05-14 (Thu)
22:10:19 +09:00