結果

問題 No.472 平均順位
ユーザー ntuda
提出日時 2025-01-28 20:39:46
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 954 ms / 2,000 ms
コード長 741 bytes
コンパイル時間 314 ms
コンパイル使用メモリ 82,584 KB
実行使用メモリ 78,208 KB
最終ジャッジ日時 2025-01-28 20:39:53
合計ジャッジ時間 5,649 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 16
権限があれば一括ダウンロードができます

ソースコード

diff #

N, P = map(int, input().split())
ABC = [list(map(int, input().split())) + [1] for _ in range(N)]
INF = 10 ** 9
dp = [0] * (P + 1)
cnt = 1
for A in ABC:
    cnt2 = min(cnt + 3, P + 1)
    for k in reversed(range(cnt2)):
        tmp = INF
        if 0 <= k < cnt:
            t1 = dp[k] + A[0]
            if tmp > t1:
                tmp = t1
        if 0 <= k - 1 < cnt:
            t1 = dp[k-1] + A[1]
            if tmp > t1:
                tmp = t1
        if 0 <= k - 2 < cnt:
            t1 = dp[k-2] + A[2]
            if tmp > t1:
                tmp = t1
        if 0 <= k - 3 < cnt:
            t1 = dp[k - 3] + A[3]
            if tmp > t1:
                tmp = t1

        dp[k] = tmp
    cnt = cnt2
#print(dp)
print(dp[P] / N)
0