結果
問題 |
No.2994 べき内積
|
ユーザー |
👑 |
提出日時 | 2024-12-14 17:09:49 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,056 ms / 2,000 ms |
コード長 | 447 bytes |
コンパイル時間 | 505 ms |
コンパイル使用メモリ | 82,552 KB |
実行使用メモリ | 131,396 KB |
最終ジャッジ日時 | 2024-12-15 11:58:17 |
合計ジャッジ時間 | 10,766 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
ソースコード
R=range J=lambda:list(map(int,input().split())) P=1009 M,N,*_=J() M+=1 N+=1 K=J() A=J() def c(f,g):return[sum(f[j]*g[i-j]for j in R(i+1))%P for i in R(N)] def p(f,n): a=[0]*N;a[0]=1 while n: if n&1:a=c(a,f) f=c(f,f);n>>=1 return a Q=[N]*(M+1);Q[0]=1 e=0 a=[0]*N;a[0]=1 for m in R(M): if Q[m]<N:B=p(A,K[m]);a=[sum(a[i-j*Q[m]]*B[j]for j in R(i//Q[m]+1))%P for i in R(N)];Q[m+1]=Q[m]*P else:e+=K[m] s=pow(A[0],e,P) print(*[x*s%P for x in a])