요즘 또 그리디가 풀리지 않는다 ,,,
import sys
input = sys.stdin.readline
n = int(input())
roads = list(map(int, input().split()))
costs = list(map(int, input().split()))
res = roads[0] * costs [0]
minimum = costs[0]
dist = 0
for i in range(1, n-1):
    if costs[i] < minimum:
        res += minimum * dist
        dist = roads[i]
        minimum = costs[i]
    else:
        dist += roads[i]
    
    if i == n-2:
        res += minimum * dist
        
print(res)
풀이출처: https://alpyrithm.tistory.com/134
영 갈피를 못 잡겠어서 결국 답을 봤다.
생각보다 그렇게 어렵지 않은 풀이였는데,
costs 값을 가장 작은 값이라고 가정dist는 최소값인 기름값에 모든 거리를 다 곱해줄 것이기 때문에 필요한 변수!cost[i] 가 작다면, 일단 지금까지 온 거리인 dist까지의 값과 기름값을 곱해 최종값에 더해주고, dist는 그 다음 거리로 초기화 시켜준 후, cost[i]로 minimum 역시 바꿔준다.roads 값을 dist에 더해주기!아직 그리디를 졸업하려면 한참은 남은듯하다 ^^...