Submission #65176821


Source Code Expand

Copy
#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]));
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#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

*/

Submission Info

Submission Time
Task A - Welcome to NPCAPC
User mikecat
Language C (gcc 12.2.0)
Score 100
Code Size 2061 Byte
Status AC
Exec Time 2920 ms
Memory 11344 KB

Judge Result

Set Name Sample subtask1 subtask2 All
Score / Max Score 0 / 0 10 / 10 10 / 10 80 / 80
Status
AC × 2
AC × 18
AC × 34
AC × 67
Set Name Test Cases
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
Case Name Status Exec Time Memory
example1_00.txt AC 188 ms 11300 KB
example2_00.txt AC 187 ms 11264 KB
subtask1_00.txt AC 192 ms 11176 KB
subtask1_01.txt AC 191 ms 11168 KB
subtask1_02.txt AC 192 ms 11196 KB
subtask1_03.txt AC 192 ms 11300 KB
subtask1_04.txt AC 192 ms 11296 KB
subtask1_05.txt AC 192 ms 11212 KB
subtask1_06.txt AC 192 ms 11204 KB
subtask1_07.txt AC 193 ms 11176 KB
subtask1_08.txt AC 191 ms 11200 KB
subtask1_09.txt AC 193 ms 11200 KB
subtask1_10.txt AC 192 ms 11200 KB
subtask1_11.txt AC 192 ms 11204 KB
subtask1_12.txt AC 193 ms 11296 KB
subtask1_13.txt AC 191 ms 11344 KB
subtask1_14.txt AC 193 ms 11228 KB
subtask1_15.txt AC 192 ms 11260 KB
subtask1_16.txt AC 192 ms 11316 KB
subtask2_00.txt AC 193 ms 11344 KB
subtask2_01.txt AC 192 ms 11312 KB
subtask2_02.txt AC 193 ms 11296 KB
subtask2_03.txt AC 192 ms 11184 KB
subtask2_04.txt AC 193 ms 11184 KB
subtask2_05.txt AC 192 ms 11172 KB
subtask2_06.txt AC 192 ms 11176 KB
subtask2_07.txt AC 193 ms 11312 KB
subtask2_08.txt AC 191 ms 11208 KB
subtask2_09.txt AC 192 ms 11296 KB
subtask2_10.txt AC 193 ms 11208 KB
subtask2_11.txt AC 192 ms 11204 KB
subtask2_12.txt AC 193 ms 11172 KB
subtask2_13.txt AC 193 ms 11308 KB
subtask2_14.txt AC 192 ms 11260 KB
test_00.txt AC 2909 ms 11300 KB
test_01.txt AC 2911 ms 11228 KB
test_02.txt AC 2915 ms 11260 KB
test_03.txt AC 2912 ms 11200 KB
test_04.txt AC 2913 ms 11300 KB
test_05.txt AC 2909 ms 11296 KB
test_06.txt AC 2911 ms 11228 KB
test_07.txt AC 2910 ms 11320 KB
test_08.txt AC 2910 ms 11260 KB
test_09.txt AC 2912 ms 11196 KB
test_10.txt AC 2907 ms 11296 KB
test_11.txt AC 2913 ms 11260 KB
test_12.txt AC 2913 ms 11172 KB
test_13.txt AC 2914 ms 11324 KB
test_14.txt AC 2911 ms 11176 KB
test_15.txt AC 2912 ms 11296 KB
test_16.txt AC 2913 ms 11184 KB
test_17.txt AC 2908 ms 11296 KB
test_18.txt AC 2909 ms 11180 KB
test_19.txt AC 2910 ms 11208 KB
test_20.txt AC 2905 ms 11308 KB
test_21.txt AC 2911 ms 11192 KB
test_22.txt AC 2914 ms 11296 KB
test_23.txt AC 2915 ms 11328 KB
test_24.txt AC 2908 ms 11264 KB
test_25.txt AC 2908 ms 11316 KB
test_26.txt AC 2916 ms 11260 KB
test_27.txt AC 2907 ms 11316 KB
test_28.txt AC 2920 ms 11264 KB
test_29.txt AC 2907 ms 11204 KB
test_30.txt AC 2911 ms 11260 KB
test_31.txt AC 2911 ms 11312 KB
test_32.txt AC 2900 ms 11260 KB


2025-04-25 (Fri)
07:59:46 +09:00