Submission #72649358


Source Code Expand

Copy
#include <stdio.h>
char have[2][256];
int main(void) {
int n;
int turn = 0, ba = 0;
int i;
int s1 = 0, s2 = 0;
if (scanf("%d", &n) != 1) return 1;
for (i = 0; i < n; i++) {
int card;
if (scanf("%d", &card) != 1) return 1;
have[0][card] = 1;
}
for (i = 1; i <= 2 * n; i++) {
have[1][i] = !have[0][i];
}
for (;;) {
/* */
int exists = 0;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <stdio.h>

char have[2][256];

int main(void) {
	int n;
	int turn = 0, ba = 0;
	int i;
	int s1 = 0, s2 = 0;
	if (scanf("%d", &n) != 1) return 1;
	for (i = 0; i < n; i++) {
		int card;
		if (scanf("%d", &card) != 1) return 1;
		have[0][card] = 1;
	}
	for (i = 1; i <= 2 * n; i++) {
		have[1][i] = !have[0][i];
	}
	for (;;) {
		/* 手持ちのカードが無くなったかを判定 */
		int exists = 0;
		for (i = 1; i <= 2 * n; i++) {
			if (have[0][i]) exists |= 1;
			if (have[1][i]) exists |= 2;
		}
		if (exists != 3) break;
		/* 出すカードを決める */
		exists = 0;
		for (i = 1; i <= 2 * n; i++) {
			if (have[turn][i] && ba < i) {
				ba = i;
				have[turn][i] = 0;
				exists = 1;
				break;
			}
		}
		if (!exists) ba = 0; /* パス */
		turn = !turn;
	}
	for (i = 1; i <= 2 * n; i++) {
		if (have[1][i]) s1++;
		if (have[0][i]) s2++;
	}
	printf("%d\n%d\n", s1, s2);
	return 0;
}

Submission Info

Submission Time
Task C - カードゲーム
User mikecat
Language C23 (GCC 14.2.0)
Score 100
Code Size 952 Byte
Status AC
Exec Time 1 ms
Memory 1736 KiB

Judge Result

Set Name set01 set02 set03 set04 set05
Score / Max Score 20 / 20 20 / 20 20 / 20 20 / 20 20 / 20
Status
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
Set Name Test Cases
set01 data1
set02 data2
set03 data3
set04 data4
set05 data5
Case Name Status Exec Time Memory
data1 AC 0 ms 1736 KiB
data2 AC 0 ms 1708 KiB
data3 AC 0 ms 1680 KiB
data4 AC 0 ms 1708 KiB
data5 AC 1 ms 1704 KiB


2026-01-23 (Fri)
07:07:56 +09:00