結果

問題 No.189 SUPER HAPPY DAY
コンテスト
ユーザー cologne
提出日時 2026-02-25 14:54:08
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 189 ms / 5,000 ms
コード長 1,399 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 403 ms
コンパイル使用メモリ 77,736 KB
実行使用メモリ 75,592 KB
最終ジャッジ日時 2026-02-25 14:54:13
合計ジャッジ時間 4,610 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 23
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys

from typing import List, Tuple


def int1(x: str, /): return int(x) - 1


def input(): return sys.stdin.readline().rstrip('\n')


def dbg(*args, **kwargs):
    print(*(repr(arg) for arg in args), *(f'{k}: {repr(v)}' for k, v in kwargs.items()), sep='; ', file=sys.stderr)


def main():
    m, d = map(lambda x: str(int(x) + 1), input().split())
    MOD = 10 ** 9 + 9

    def add(x, y):
        z = [0] * max(len(x), len(y))
        for i in range(len(x)):
            z[i] += x[i]
        for i in range(len(y)):
            z[i] = (z[i] + y[i]) % MOD

        return z

    def mul(x, y):
        z = [0] * (len(x) + len(y) - 1)
        for i in range(len(x)):
            for j in range(len(y)):
                z[i + j] = (z[i + j] + x[i] * y[j]) % MOD
        return z

    def calc(s):
        ans = []
        muler = [1]
        for i in range(len(s) - 1, -1, -1):
            base = sum(map(int, s[:i]))
            ans = add(ans, mul([0] * base + muler, [1] * int(s[i])))
            muler = mul(muler, [1] * 10)
        return ans

    a = calc(m)
    b = calc(d)

    ans = -1
    for x, y in zip(a, b):
        ans = (ans + x * y) % MOD

    return ans


def _start():
    ret = main()

    if ret is not None:
        if isinstance(ret, List) or isinstance(ret, Tuple):
            print(*ret)
        else:
            print(ret)


if __name__ == '__main__':
    _start()
0