白駿13305号ガソリンスタンドパイソン


質問する



インプット



solution

import sys

input = sys.stdin.readline
n = int(input())
arrlen = list(map(int, input().split()))
arr = list(map(int, input().split()))
res = 0
cur = arr[0]
res = arr[0] * arrlen[0]
for i in range(1, n - 1):
    if cur > arr[i]:
        cur = arr[i]
    res += cur * arrlen[i]
print(res)

説明:


arlenは次の主要な距離(キロ)まであり、arrは現在ガソリンスタンドのガソリン価格を貯蔵している.
初期値は初めてガソリンスタンドで必ず1回置くのでarr[0]*arlen[0]を置きました.
ガソリンスタンドは無限に給油できると言っているので、一番安いところに一番多く入れて一番安く移動できます.
従ってcurでarr[i]が小さい場合、現在最も安いガソリンスタンドの価格を格納する
つまり、前のガソリンスタンドの中で、一番安い価格を下回れば.
curにarr[i]値を加えると、最高値に移動できます.

ポスト


問題を見てみると、思ったより簡単です.
読解力を養う必要があるようだ.