提出 #70108723


ソースコード 拡げる

#include <stdio.h>
#include <inttypes.h>

#define MOD_BY 998244353

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

int pou(int a, uint64_t b) {
	int r = 1;
	while (b > 0) {
		if (b & 1) r = mul(r, a);
		a = mul(a, a);
		b >>= 1;
	}
	return r;
}

int main(void) {
	uint64_t N;
	if (scanf("%" SCNu64, &N) != 1) return 1;
	printf("%d\n", pou(2, N - 1));
	return 0;
}

/*

P_1:まず適当に決める
P_i (i >= 2):「それまでの最大値+1」か「それまでの最小値-1」の2択
+n / -n (n > 1) を使ってしまうと、後で中途半端な値しか残らなくなって詰む

*/

提出情報

提出日時
問題 A - >_<
ユーザ mikecat
言語 C (gcc 12.2.0)
得点 300
コード長 648 Byte
結果 AC
実行時間 1 ms
メモリ 1724 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 2
AC × 12
セット名 テストケース
Sample example0.txt, example1.txt
All example0.txt, example1.txt, max_rand0.txt, max_rand1.txt, max_rand2.txt, maximum0.txt, minimum0.txt, random0.txt, random1.txt, random2.txt, random3.txt, random4.txt
ケース名 結果 実行時間 メモリ
example0.txt AC 0 ms 1628 KiB
example1.txt AC 0 ms 1632 KiB
max_rand0.txt AC 0 ms 1612 KiB
max_rand1.txt AC 0 ms 1692 KiB
max_rand2.txt AC 0 ms 1720 KiB
maximum0.txt AC 0 ms 1704 KiB
minimum0.txt AC 0 ms 1624 KiB
random0.txt AC 0 ms 1548 KiB
random1.txt AC 1 ms 1700 KiB
random2.txt AC 0 ms 1720 KiB
random3.txt AC 0 ms 1628 KiB
random4.txt AC 0 ms 1724 KiB