結果
| 問題 |
No.818 Dinner time
|
| コンテスト | |
| ユーザー |
👑 SPD_9X2
|
| 提出日時 | 2025-10-26 17:12:58 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,042 bytes |
| コンパイル時間 | 404 ms |
| コンパイル使用メモリ | 82,168 KB |
| 実行使用メモリ | 76,852 KB |
| 最終ジャッジ日時 | 2025-10-26 17:13:05 |
| 合計ジャッジ時間 | 5,134 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 27 WA * 2 |
ソースコード
"""
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 if i>0 else -INF), #101
max(B,A), # 110
0 if i > 0 else -INF #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 (now)
print (max(now))
SPD_9X2