結果
問題 | No.3006 ベイカーの問題 |
ユーザー |
![]() |
提出日時 | 2025-01-17 23:07:22 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 45 ms / 2,000 ms |
コード長 | 982 bytes |
コンパイル時間 | 382 ms |
コンパイル使用メモリ | 81,860 KB |
実行使用メモリ | 54,376 KB |
最終ジャッジ日時 | 2025-01-17 23:07:56 |
合計ジャッジ時間 | 2,467 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
ソースコード
mod=998244353import sys;sys.setrecursionlimit(10**6)X1,Y1,N=map(int,input().split())def mmul(A,B):return [[(A[0][0]*B[0][0]+A[0][1]*B[1][0])%mod,(A[0][0]*B[0][1]+A[0][1]*B[1][1])%mod],[(A[1][0]*B[0][0]+A[1][1]*B[1][0])%mod,(A[1][0]*B[0][1]+A[1][1]*B[1][1])%mod]]def madd(A,B):return [[(A[0][0]+B[0][0])%mod,(A[0][1]+B[0][1])%mod],[(A[1][0]+B[1][0])%mod,(A[1][1]+B[1][1])%mod]]M=[[X1%mod,(-5*Y1)%mod],[Y1%mod,X1%mod]]idt=[[1,0],[0,1]]zero=[[0,0],[0,0]]def powsum(M,n):if n==0:return (idt,zero)if n==1:return (M,idt)if n%2==0:Ah,Sh=powsum(M,n//2)Af=mmul(Ah,Ah)S=madd(Sh,mmul(Ah,Sh))return (Af,S)else:Apre,Spre=powsum(M,n-1)Af=mmul(M,Apre)S=madd(Spre,Apre)return (Af,S)_,SM=powsum(M,N)vec=[X1%mod,Y1%mod]SX=(SM[0][0]*vec[0]+SM[0][1]*vec[1])%modSY=(SM[1][0]*vec[0]+SM[1][1]*vec[1])%modprint(SX,SY)