結果
| 問題 |
No.3037 トグルトグルトグル!
|
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-03-31 17:47:18 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,210 bytes |
| コンパイル時間 | 191 ms |
| コンパイル使用メモリ | 82,188 KB |
| 実行使用メモリ | 67,860 KB |
| 最終ジャッジ日時 | 2025-03-31 17:48:23 |
| 合計ジャッジ時間 | 1,825 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | RE * 3 |
| other | RE * 13 |
ソースコード
import operator as o
# Define numbers without using forbidden characters
z = len([])
a = len([z])
b = len([z, a])
c = len([z, a, b])
d = len([z, a, b, c])
e = len([z, a, b, c, d])
f = len([z, a, b, c, d, e])
g = len([z, a, b, c, d, e, f])
h = len([z, a, b, c, d, e, f, g])
i = len([z, a, b, c, d, e, f, g, h])
j = len([z, a, b, c, d, e, f, g, h, i])
k = o.add(o.pow(j, i), g)
# Matrix multiplication and exponentiation functions
def mmul(m1, m2):
return (
(o.add(o.mul(m1[0][0], m2[0][0]), o.mul(m1[0][1], m2[1][0])) % k,
o.add(o.mul(m1[0][0], m2[0][1]), o.mul(m1[0][1], m2[1][1])) % k),
(o.add(o.mul(m1[1][0], m2[0][0]), o.mul(m1[1][1], m2[1][0])) % k,
o.add(o.mul(m1[1][0], m2[0][1]), o.mul(m1[1][1], m2[1][1])) % k)
)
def mpow(mat, power):
result = ((a, z), (z, a))
while power > z:
if power % b == a:
result = mmul(result, mat)
mat = mmul(mat, mat)
power = power // b
return result
def lucas(n):
if n == z:
return b % k
mat = mpow(((a, a), (a, z)), n - a)
return o.add(o.mul(mat[0][0], a), o.mul(mat[0][1], b)) % k
t = int(input())
for _ in range(t):
n = int(input())
print(lucas(n))
lam6er