結果
| 問題 |
No.147 試験監督(2)
|
| コンテスト | |
| ユーザー |
vwxyz
|
| 提出日時 | 2024-04-17 12:30:48 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 598 ms / 2,000 ms |
| コード長 | 574 bytes |
| コンパイル時間 | 1,162 ms |
| コンパイル使用メモリ | 81,732 KB |
| 実行使用メモリ | 77,056 KB |
| 最終ジャッジ日時 | 2024-10-09 06:33:07 |
| 合計ジャッジ時間 | 3,733 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 4 |
ソースコード
def prod(mat0,mat1):
mat=[[0]*2 for i in range(2)]
for i in range(2):
for j in range(2):
for k in range(2):
mat[i][k]+=mat0[i][j]*mat1[j][k]%mod
mat[i][k]%=mod
return mat
N=int(input())
ans=1
mod=10**9+7
M=[[[1,1],[1,0]]]
for i in range(1,60):
M.append(prod(M[-1],M[-1]))
for n in range(N):
c,d=map(int,input().split())
if d>mod:
d%=mod-1
mat=[[1,0],[0,1]]
for b in range(60):
if c+1>>b&1:
mat=prod(mat,M[b])
ans*=pow(mat[0][0],d,mod)
ans%=mod
print(ans)
vwxyz