結果
| 問題 |
No.1258 コインゲーム
|
| コンテスト | |
| ユーザー |
Eki1009
|
| 提出日時 | 2020-10-16 22:29:48 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 230 ms / 2,000 ms |
| コード長 | 1,011 bytes |
| コンパイル時間 | 170 ms |
| コンパイル使用メモリ | 82,332 KB |
| 実行使用メモリ | 77,568 KB |
| 最終ジャッジ日時 | 2024-07-20 22:46:30 |
| 合計ジャッジ時間 | 12,025 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 50 |
ソースコード
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**7)
mod = 10**9+7
X = [[1, 1], [1, 1]]
Y = [[1, 1], [1, 1]]
def f():
n, m, x = map(int, input().split())
X[0][0] = 1
X[0][1] = m
X[1][0] = m
X[1][1] = 1
Y[0][0] = 1
Y[0][1] = 0
Y[1][0] = 0
Y[1][1] = 1
while n:
if n%2:
a = X[0][0]*Y[0][0] + X[0][1]*Y[1][0]
b = X[0][0]*Y[0][1] + X[0][1]*Y[1][1]
c = X[1][0]*Y[0][0] + X[1][1]*Y[1][0]
d = X[1][0]*Y[0][1] + X[1][1]*Y[1][1]
Y[0][0] = a%mod
Y[0][1] = b%mod
Y[1][0] = c%mod
Y[1][1] = d%mod
a = X[0][0]*X[0][0] + X[0][1]*X[1][0]
b = X[0][0]*X[0][1] + X[0][1]*X[1][1]
c = X[1][0]*X[0][0] + X[1][1]*X[1][0]
d = X[1][0]*X[0][1] + X[1][1]*X[1][1]
X[0][0] = a%mod
X[0][1] = b%mod
X[1][0] = c%mod
X[1][1] = d%mod
n //= 2
print(Y[0][x])
s = int(input())
for _ in range(s):
f()
Eki1009