結果
問題 |
No.2905 Nabeatsu Integration
|
ユーザー |
![]() |
提出日時 | 2024-09-27 22:33:32 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 966 bytes |
コンパイル時間 | 295 ms |
コンパイル使用メモリ | 81,848 KB |
実行使用メモリ | 146,748 KB |
最終ジャッジ日時 | 2024-09-27 22:33:58 |
合計ジャッジ時間 | 14,352 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 RE * 1 |
other | WA * 26 RE * 30 MLE * 14 |
ソースコード
def Z_algorithm(lst): le=len(lst) LCP=[None]*le LCP[0]=le L,R=0,0 for i in range(1,le): if i<R: x=LCP[i-L] if x<R-i: LCP[i]=x elif R-i<x: LCP[i]=R-i else: while R<le and lst[R-i]==lst[R]: R+=1 LCP[i]=R-i L=i else: R=max(R,i) while R<le and lst[R-i]==lst[R]: R+=1 LCP[i]=R-i L=i return LCP S=input() lcp=Z_algorithm(S) lcp[0]=0 mod=998244353 N=len(S) A=[None]*(N+1) B=[None]*(N+1) A[0]=1 B[0]=0 inve10=pow(10,mod-2,mod) for i in range(N): if S[i]==S[0]: A[i+1]=(10*A[i]-9*A[lcp[i]])%mod B[i+1]=(10*B[i]-9*B[lcp[i]]-10)%mod else: A[i+1]=(10*A[i]-8*A[lcp[i]]-A[1])%mod B[i+1]=(10*B[i]-8*B[lcp[i]]-B[1]-10)%mod ans=(-B[N])*pow(A[N],mod-2,mod)%mod ans-=(N-1) ans%=mod print(ans)