提出 #65176821


ソースコード 拡げる

#include <stdio.h>
#include <string.h>

#define MOD_BY 998244353

int add(int a, int b) {
	return a + b - MOD_BY * (a + b >= MOD_BY);
}

int mul(int a, int b) {
	return (int)((long long)a * b % MOD_BY);
}

void matmul(int out[49][49], int a[49][49], int b[49][49]) {
	int i, j, k;
	memset(out, 0, sizeof(int[49][49]));
	for (k = 0; k < 49; k++) {
		for (i = 0; i < 49; i++) {
			for (j = 0; j < 49; j++) {
				out[i][j] = add(out[i][j], mul(a[i][k], b[k][j]));
			}
		}
	}
}

int delta[4][256][49][49];

int main(void) {
	int i, j;
	int T, tc;
	for (i = 0; i < 4; i++) {
		for (j = 0; j < 49; j++) {
			delta[i][0][j][j] = 1;
		}
	}
	for (i = 0; i < 7; i++) {
		for (j = 0; j < 7; j++) {
			if (i == 6 && j == 6) {
				delta[0][1][i * 7 + j][i * 7 + j] = 52;
			} else if (i == 6) {
				delta[0][1][i * 7 + j][i * 7 + j] = 51;
				delta[0][1][i * 7 + j][i * 7 + (j + 1)] = 1;
			} else if (j == 6) {
				delta[0][1][i * 7 + j][i * 7 + j] = 51;
				delta[0][1][i * 7 + j][(i + 1) * 7 + j] = 1;
			} else {
				delta[0][1][i * 7 + j][i * 7 + j] = 50;
				delta[0][1][i * 7 + j][(i + 1) * 7 + j] = 1;
				delta[0][1][i * 7 + j][i * 7 + (j + 1)] = 1;
			}
		}
	}
	for (i = 2; i < 256; i++) {
		matmul(delta[0][i], delta[0][i - 1], delta[0][1]);
	}
	for (i = 1; i < 4; i++) {
		matmul(delta[i][1], delta[i - 1][255], delta[i - 1][1]);
		for (j = 2; j < 256; j++) {
			matmul(delta[i][j], delta[i][j - 1], delta[i][1]);
		}
	}
	if (scanf("%d", &T) != 1) return 1;
	for (tc = 0; tc < T; tc++) {
		int buf[3][49][49];
		int N;
		if (scanf("%d", &N) != 1) return 1;
		matmul(buf[0], delta[0][N & 0xff], delta[1][(N >> 8) & 0xff]);
		matmul(buf[1], buf[0], delta[2][(N >> 16) & 0xff]);
		matmul(buf[2], buf[1], delta[3][(N >> 24) & 0xff]);
		printf("%d\n", buf[2][0 * 7 + 0][6 * 7 + 6]);
	}
	return 0;
}

/*

0 <= m < 6, 0 <= n < 6
[m][n] -> [m + 1][n] x 1, [m][n + 1] x 1, [m][n] x 50
[m][6] -> [m + 1][6] x 1, [m][6] x 51
[6][n] -> [6][n + 1] x 1, [6][n] x 51
[6][6] -> [6][6] x 52

*/

提出情報

提出日時
問題 A - Welcome to NPCAPC
ユーザ mikecat
言語 C (gcc 12.2.0)
得点 100
コード長 2061 Byte
結果 AC
実行時間 2920 ms
メモリ 11344 KiB

ジャッジ結果

セット名 Sample subtask1 subtask2 All
得点 / 配点 0 / 0 10 / 10 10 / 10 80 / 80
結果
AC × 2
AC × 18
AC × 34
AC × 67
セット名 テストケース
Sample example1_00.txt, example2_00.txt
subtask1 example1_00.txt, subtask1_00.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt
subtask2 example1_00.txt, example2_00.txt, subtask1_00.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask2_00.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt
All example1_00.txt, example2_00.txt, subtask1_00.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask2_00.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt
ケース名 結果 実行時間 メモリ
example1_00.txt AC 188 ms 11300 KiB
example2_00.txt AC 187 ms 11264 KiB
subtask1_00.txt AC 192 ms 11176 KiB
subtask1_01.txt AC 191 ms 11168 KiB
subtask1_02.txt AC 192 ms 11196 KiB
subtask1_03.txt AC 192 ms 11300 KiB
subtask1_04.txt AC 192 ms 11296 KiB
subtask1_05.txt AC 192 ms 11212 KiB
subtask1_06.txt AC 192 ms 11204 KiB
subtask1_07.txt AC 193 ms 11176 KiB
subtask1_08.txt AC 191 ms 11200 KiB
subtask1_09.txt AC 193 ms 11200 KiB
subtask1_10.txt AC 192 ms 11200 KiB
subtask1_11.txt AC 192 ms 11204 KiB
subtask1_12.txt AC 193 ms 11296 KiB
subtask1_13.txt AC 191 ms 11344 KiB
subtask1_14.txt AC 193 ms 11228 KiB
subtask1_15.txt AC 192 ms 11260 KiB
subtask1_16.txt AC 192 ms 11316 KiB
subtask2_00.txt AC 193 ms 11344 KiB
subtask2_01.txt AC 192 ms 11312 KiB
subtask2_02.txt AC 193 ms 11296 KiB
subtask2_03.txt AC 192 ms 11184 KiB
subtask2_04.txt AC 193 ms 11184 KiB
subtask2_05.txt AC 192 ms 11172 KiB
subtask2_06.txt AC 192 ms 11176 KiB
subtask2_07.txt AC 193 ms 11312 KiB
subtask2_08.txt AC 191 ms 11208 KiB
subtask2_09.txt AC 192 ms 11296 KiB
subtask2_10.txt AC 193 ms 11208 KiB
subtask2_11.txt AC 192 ms 11204 KiB
subtask2_12.txt AC 193 ms 11172 KiB
subtask2_13.txt AC 193 ms 11308 KiB
subtask2_14.txt AC 192 ms 11260 KiB
test_00.txt AC 2909 ms 11300 KiB
test_01.txt AC 2911 ms 11228 KiB
test_02.txt AC 2915 ms 11260 KiB
test_03.txt AC 2912 ms 11200 KiB
test_04.txt AC 2913 ms 11300 KiB
test_05.txt AC 2909 ms 11296 KiB
test_06.txt AC 2911 ms 11228 KiB
test_07.txt AC 2910 ms 11320 KiB
test_08.txt AC 2910 ms 11260 KiB
test_09.txt AC 2912 ms 11196 KiB
test_10.txt AC 2907 ms 11296 KiB
test_11.txt AC 2913 ms 11260 KiB
test_12.txt AC 2913 ms 11172 KiB
test_13.txt AC 2914 ms 11324 KiB
test_14.txt AC 2911 ms 11176 KiB
test_15.txt AC 2912 ms 11296 KiB
test_16.txt AC 2913 ms 11184 KiB
test_17.txt AC 2908 ms 11296 KiB
test_18.txt AC 2909 ms 11180 KiB
test_19.txt AC 2910 ms 11208 KiB
test_20.txt AC 2905 ms 11308 KiB
test_21.txt AC 2911 ms 11192 KiB
test_22.txt AC 2914 ms 11296 KiB
test_23.txt AC 2915 ms 11328 KiB
test_24.txt AC 2908 ms 11264 KiB
test_25.txt AC 2908 ms 11316 KiB
test_26.txt AC 2916 ms 11260 KiB
test_27.txt AC 2907 ms 11316 KiB
test_28.txt AC 2920 ms 11264 KiB
test_29.txt AC 2907 ms 11204 KiB
test_30.txt AC 2911 ms 11260 KiB
test_31.txt AC 2911 ms 11312 KiB
test_32.txt AC 2900 ms 11260 KiB