結果
| 問題 |
No.860 買い物
|
| コンテスト | |
| ユーザー |
maspy
|
| 提出日時 | 2020-03-21 13:02:51 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 271 ms / 1,000 ms |
| コード長 | 623 bytes |
| コンパイル時間 | 250 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 35,212 KB |
| 最終ジャッジ日時 | 2024-12-21 14:50:50 |
| 合計ジャッジ時間 | 4,528 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 15 |
ソースコード
#!/usr/bin/ python3.8
import sys
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
N = int(readline())
m = map(int, read().split())
A, B = zip(*zip(m, m))
A = (0,) + A
B = (0,) + B + (0,)
INF = 10 ** 18
dp = [-INF] * (N + 1) # その商品を最後に手数料対象とするときの、最適な節約額
dp1 = [-INF] * (N + 1)
dp1[0] = B[1]
for i in range(1, N + 1):
dp[i] = dp1[i - 1] - A[i]
if dp[i - 1] > dp[i]:
dp[i] = dp[i - 1]
dp1[i] = max(dp1[i - 1], dp[i] + B[i + 1])
save = max(dp[1:])
answer = sum(A) + sum(B) - save
print(answer)
maspy