結果

問題 No.818 Dinner time
コンテスト
ユーザー 👑 SPD_9X2
提出日時 2025-10-26 17:08:20
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 981 bytes
コンパイル時間 298 ms
コンパイル使用メモリ 82,544 KB
実行使用メモリ 77,012 KB
最終ジャッジ日時 2025-10-26 17:08:26
合計ジャッジ時間 5,721 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 27 WA * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

"""

https://yukicoder.me/problems/no/818

2~K-1日目までは同じだろう


1 2 Last
A A A    0<B<A
A A B    0<A<B
B - -    A<0 のものは使用するならこれ?
- - B    存在する? -> メリット無さそう
- - -


絶対にWAにならないには...
8通りの状態を管理

"""

N,M = map(int,input().split())

INF = float("inf")

now = [-INF] * 8
now[0] = 0
ans = 0

ed = 1
fi = 0 if M==1 else 1
mid = M - ed - fi

for i in range(N):

    A,B = map(int,input().split())
    n2 = [-INF] * 8

    cost = [
        max(B, A*M,     A*(M-1)+B), #000
        max(B, A*(M-1), A*max(0,M-2)+B), #001
        max(B, A*fi+B , A*fi+A), # 010
        max(B, A*fi), #011
        max(B, A*mid+B, A*mid+A), #100
        max(B, A*mid, A*mid-1+B) if mid > 0 else 0, #101
        max(B,A), # 110
        0 #111
    ]

    for j in range(8):
        for k in range(8):
            if j|k == k:
                n2[k] = max(n2[k], now[j] + cost[k])
    now = n2

print (max(now))
0