結果
問題 | No.2994 べき内積 |
ユーザー |
![]() |
提出日時 | 2024-12-19 04:15:51 |
言語 | cLay (20241019-1) |
結果 |
AC
|
実行時間 | 16 ms / 2,000 ms |
コード長 | 626 bytes |
コンパイル時間 | 4,644 ms |
コンパイル使用メモリ | 185,140 KB |
実行使用メモリ | 9,800 KB |
最終ジャッジ日時 | 2024-12-19 04:15:58 |
合計ジャッジ時間 | 6,165 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
ソースコード
void f(ll n,double*a,double*r){ convolution(a,n,r,n,r,n); rep(i,n){ r[i]=fmod(floor(r[i]+.5),1009); } } { ll@m++,@n++,@k[m]; double@a[n]; double z[n]{1}; ll a0=a[0]; ll a1=n>1?a[1]:0; ll aa=a[0]; if(true){ ll c=k[0]; while(c){ if(c&1){ f(n,a,z); } c>>=1; f(n,a,a); } } ll e=1; if(m>1&&n>1009){ e=2; ll c=k[1]; while(c){ if(c&1){ rep(i,1009,n){ z[i]=fmod(z[i]*a0+z[i-1009]*a1,1009); } rep(i,1009){ z[i]=fmod(z[i]*a0,1009); } } c>>=1; (a0,a1)=(a0*a0%1009,a0*a1*2%1009); } } ll b=m>e?powmod(aa,sum[i,e,m](k[i]),1009):1; wt((ll)z(n)*b%1009); }