結果

問題 No.2193 メガの下1桁
ユーザー shobonvip
提出日時 2023-01-13 22:50:08
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 771 bytes
コンパイル時間 232 ms
コンパイル使用メモリ 81,920 KB
実行使用メモリ 54,400 KB
最終ジャッジ日時 2024-12-24 18:48:21
合計ジャッジ時間 3,779 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 35 WA * 5
権限があれば一括ダウンロードができます

ソースコード

diff #

import random

m = int(input())
d = int(input())
n = int(input())
b = int(input())

def fast(m,d,n,b):
	v = [[0] * b for i in range(60)]
	for i in range(b):
		if (i+d)%b != 0:
			v[0][i] = pow(i+d, i, b)
		else:
			v[0][i] = 0

	for i in range(59):
		for j in range(b):
			v[i+1][j] = v[i][v[i][j]]

	if n == 0:
		r = '0123456789ABCDEFG'
		return r[m % b]

	if m == 0:
		n -= 1
		m = pow(m + d, m, b)

	m %= b
	for i in range(60):
		if (n >> i) & 1:
			m = v[i][m]

	r = '0123456789ABCDEFG'
	return r[m]

def naive(m,d,n,b):
	if n == 0:
		r = '0123456789ABCDEFG'
		return r[m % b]
	if m == 0:
		n -= 1
		m = pow(m+d, m, b)
	m %= b
	for i in range(n):
		if (m+d)%b != 0:
			m = pow(m+d, m, b)
		else:
			m = 0
	
	r = '0123456789ABCDEFG'

	return r[m]

print(fast(m,d,n,b))
0