Submission #72276403


Source Code Expand

Copy
#include <stdio.h>
int cards[2][114514];
int main(void) {
int n, m;
int i;
int cur = 0;
if (scanf("%d", &n) != 1) return 1;
for (i = 0; i < 2 * n; i++) {
cards[0][i] = i + 1;
}
if (scanf("%d", &m) != 1) return 1;
for (i = 0; i < m; i++) {
int next = cur ^ 1;
int k;
int j;
if (scanf("%d", &k) != 1) return 1;
if (k == 0) {
for (j = 0; j < n; j++) {
cards[next][j * 2] = cards[cur][j];
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <stdio.h>

int cards[2][114514];

int main(void) {
	int n, m;
	int i;
	int cur = 0;
	if (scanf("%d", &n) != 1) return 1;
	for (i = 0; i < 2 * n; i++) {
		cards[0][i] = i + 1;
	}
	if (scanf("%d", &m) != 1) return 1;
	for (i = 0; i < m; i++) {
		int next = cur ^ 1;
		int k;
		int j;
		if (scanf("%d", &k) != 1) return 1;
		if (k == 0) {
			for (j = 0; j < n; j++) {
				cards[next][j * 2] = cards[cur][j];
				cards[next][j * 2 + 1] = cards[cur][n + j];
			}
		} else {
			for (j = 0; j < k; j++) {
				cards[next][j + (n * 2 - k)] = cards[cur][j];
			}
			for (j = k; j < n * 2; j++) {
				cards[next][j - k] = cards[cur][j];
			}
		}
		cur = next;
	}
	for (i = 0; i < n * 2; i++) {
		printf("%d\n", cards[cur][i]);
	}
	return 0;
}

Submission Info

Submission Time
Task D - カードの並び替え
User mikecat
Language C23 (GCC 14.2.0)
Score 100
Code Size 779 Byte
Status AC
Exec Time 1 ms
Memory 1704 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 1 ms 1616 KiB
data2 AC 1 ms 1640 KiB
data3 AC 1 ms 1588 KiB
data4 AC 1 ms 1704 KiB
data5 AC 1 ms 1588 KiB


2026-01-07 (Wed)
06:55:58 +09:00