Submission #74212158


Source Code Expand

Copy
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(const void* x, const void* y) {
int a = *(const int*)x, b = *(const int*)y;
return (a > b) - (a < b);
}
int n;
int k;
char seisuu[16][8];
int cnt = 0;
int tukuru[114514];
void meow(const char* cur, int left, int used) {
if (left <= 0) {
tukuru[cnt++] = atoi(cur);
} else {
int i;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int cmp(const void* x, const void* y) {
	int a = *(const int*)x, b = *(const int*)y;
	return (a > b) - (a < b);
}

int n;
int k;
char seisuu[16][8];

int cnt = 0;
int tukuru[114514];

void meow(const char* cur, int left, int used) {
	if (left <= 0) {
		tukuru[cnt++] = atoi(cur);
	} else {
		int i;
		char next[16], *pend;
		strcpy(next, cur);
		pend = next + strlen(next);
		for (i = 0; i < n; i++) {
			if (((used >> i) & 1) == 0) {
				strcpy(pend, seisuu[i]);
				meow(next, left - 1, used | (1 << i));
			}
		}
	}
}

int main(void) {
	int i;
	int ans = 0;
	if (scanf("%d", &n) != 1) return 1;
	if (scanf("%d", &k) != 1) return 1;
	for (i = 0; i < n; i++) {
		if (scanf("%7s", seisuu[i]) != 1) return 1;
	}
	meow("", k, 0);
	qsort(tukuru, cnt, sizeof(*tukuru), cmp);
	for (i = 0; i < cnt; i++) {
		if (!(i > 0 && tukuru[i - 1] == tukuru[i])) ans++;
	}
	printf("%d\n", ans);
	return 0;
}

Submission Info

Submission Time
Task D - カード並べ
User mikecat
Language C23 (GCC 14.2.0)
Score 100
Code Size 1000 Byte
Status AC
Exec Time 1 ms
Memory 1844 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 1668 KiB
data2 AC 1 ms 1740 KiB
data3 AC 1 ms 1772 KiB
data4 AC 1 ms 1812 KiB
data5 AC 1 ms 1844 KiB


2026-03-19 (Thu)
08:26:58 +09:00