結果
| 問題 |
No.1407 Kindness
|
| コンテスト | |
| ユーザー |
👑 Kazun
|
| 提出日時 | 2021-02-27 00:32:28 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 93 ms / 2,000 ms |
| コード長 | 420 bytes |
| コンパイル時間 | 1,162 ms |
| コンパイル使用メモリ | 82,432 KB |
| 実行使用メモリ | 85,120 KB |
| 最終ジャッジ日時 | 2024-10-02 16:39:25 |
| 合計ジャッジ時間 | 4,055 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 36 |
ソースコード
def f(s,t):
if s<=t:
return (s+t)*(t-s+1)//2
else:
return 0
N=input()
Mod=10**9+7
DP=[[0,0] for _ in range(len(N))]
X=[x*(x+1)//2 for x in range(10)]
n=int(N[0])
DP[0][0]=n*(n+1)//2
DP[0][1]=n*(n-1)//2
for i,r in enumerate(N[1:],1):
D=DP[i]
E=DP[i-1]
r=int(r)
D[0]=((E[0]+1)*f(0,r) +(E[1]+1)*f(r+1,9))%Mod
D[1]=((E[0]+1)*f(0,r-1)+(E[1]+1)*f(r ,9))%Mod
print(DP[-1][0])
Kazun