結果

問題 No.3696 Betting Machine
コンテスト
ユーザー LyricalMaestro
提出日時 2026-09-10 00:26:38
言語 PyPy3
(7.3.23 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 1,414 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 76 ms
コンパイル使用メモリ 81,408 KB
実行使用メモリ 83,712 KB
最終ジャッジ日時 2026-09-10 00:27:09
合計ジャッジ時間 4,386 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 18 WA * 3
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

# https://yukicoder.me/problems/no/3696

from collections import deque


def main():
    S, T, N = map(int, input().split())
    pab = []
    for _ in range(3):
        p, a, b = map(int, input().split())
        pab.append((p,a,b))

    dp = [[0] * T for _ in range(N + 1)]
    for n in range(N):
        weight = 100 ** n
        for w in range(T):
            max_ans = -1
            for x in range(w + 1):
                ans = 0
                for p, a, b in pab:
                    y = w - x + ((x * a) // b)
                    if y >= T:
                        ans += (p * weight)
                    else:
                        ans += p * dp[N - n][y]
                max_ans = max(max_ans, ans)
            dp[N - 1 - n][w] = max_ans

    max_q = dp[0][S]
    ans1 = max_q // (100 ** (N - 1))
    print(ans1)

    weight = 100 ** (N - 1)
    w = S
    array = []
    max_ans = -1
    for x in range(w + 1):
        ans = 0
        for p, a, b in pab:
            y = w - x + ((x * a) // b)
            if y >= T:
                ans += (p * weight)
            else:
                ans += p * dp[1][y]
        if ans > max_ans:
            max_ans = ans
            array = [x]
        elif ans == max_ans:
            array.append(x)

    array.sort()

    print(len(array))
    print(" ".join(map(str, array)))


                        



        

    


if __name__ == "__main__":
    main()
0