結果

問題 No.3476 {2^n-1}-gon
コンテスト
ユーザー AwashAmityOak
提出日時 2026-03-20 21:56:30
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 34 ms / 2,000 ms
コード長 618 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 203 ms
コンパイル使用メモリ 85,328 KB
実行使用メモリ 60,736 KB
最終ジャッジ日時 2026-03-20 21:56:37
合計ジャッジ時間 1,395 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge1_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 18
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

N, M = map(int, input().split())

MOD = 998244353

if 60 <= N or M <= (1 << (N-1)):
	a, b = 1, 1
	k = (pow(2, N, MOD) - 2) % MOD
	l = (pow(2, N-1, MOD) - 1) % MOD
	m = 1
	for i in range(1, M):
		a *= k
		a %= MOD
		k -= 1
		k %= MOD
		
		b *= l
		b %= MOD
		l -= 1
		l %= MOD
		
		m *= i
		m %= MOD
	
	a *= pow(M, -1, MOD)
	b %= MOD
	
	ans = (a - b) % MOD
	ans *= pow(2, N, MOD) - 1
	ans %= MOD
	ans *= pow(m, -1, MOD)
	ans %= MOD
	
	print(ans)
else:
	ans = 1
	a, b = pow(2, N, MOD)-1, 1
	for i in range(1, M+1):
		ans *= a
		ans %= MOD
		a -= 1
		a %= MOD
		
		b *= i
		b %= MOD
	print((ans * pow(b, -1, MOD)) % MOD)
0