結果

問題 No.3242 Count 8 Included Numbers (Hard)
ユーザー Hyoka7
提出日時 2025-08-22 22:55:54
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,381 ms / 2,000 ms
コード長 716 bytes
コンパイル時間 249 ms
コンパイル使用メモリ 82,640 KB
実行使用メモリ 302,636 KB
最終ジャッジ日時 2025-08-22 22:56:16
合計ジャッジ時間 21,240 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 5
other AC * 20
権限があれば一括ダウンロードができます

ソースコード

diff #

def readint():
    return map(int, input().split())


def readlist():
    return list(readint())


n = input()
dp = [[[0] * 2 for _ in range(2)] for _ in range(len(n) + 5)]
dp[0][0][0] = 1
for i in range(len(n)):
    for j in range(2):
        for k in range(2):
            if dp[i][j][k] == 0:
                continue
            lim = int(n[i]) if j == 0 else 9
            for digit in range(lim + 1):
                tight = 1 if j == 1 or digit < lim else 0
                flag = 1 if k == 1 or digit == 8 else 0
                dp[i + 1][tight][flag] = (
                    dp[i + 1][tight][flag] + dp[i][j][k]
                ) % 998244353
ans = dp[len(n)][0][1] + dp[len(n)][1][1]
print(ans % 998244353)
0