도시를 이동하면서 이전 도시에서 주유했던 주유소의 리터당 가격보다 더 싼 도시의 주유소가 나오면 해당 도시에서 주유를 하도록 하는 로직으로 풀었다!
출발할 때 무조건 첫 도시에서 다음거리만큼 주유를 해야하므로 첫 도시의 주유소 리터당 가격 x 첫 도시와 두번째 도시 사이의 거리
를 계산하였다. 그리고 맨 마지막 도시의 주유소에서 주유할 경우가 없기 때문에 맨 마지막 도시의 주유소 리터당 가격을 삭제하였다. 마지막으로 현재 주유한 주유소의 리터당 가격을 저장하고, 현재 가격보다 더 싼 도시의 주유소가 나오면 해당 도시의 주유소 리터당 가격으로 갱신한 후 이동하는 거리만큼 계속 곱하여 답을 구했다.
import sys
input = sys.stdin.readline
N = int(input())
dist = list(map(int, input().split()))
won = list(map(int, input().split()))
won.pop() # 맨 마지막 도시의 주유소 리터당 가격 필요없음
ans = 0
part = won[0] # 주유소 가격
ans = part * dist[0]
# 무조건 리터당 가격이 싼 도시에서 주유해야 이득을 보게됨
for i in range(1, len(won)):
if part > won[i]:
part = won[i]
ans += part * dist[i]
else:
ans += part * dist[i]
print(ans)