๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

[๋ฐฑ์ค€] [Python] 13305๋ฒˆ_์ฃผ์œ ์†Œ

Dbswnstjd 2022. 3. 16. 21:28

https://www.acmicpc.net/problem/13305

 

13305๋ฒˆ: ์ฃผ์œ ์†Œ

ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ๋‹ค์Œ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ๋„์‹œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ N(2 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” ์ธ์ ‘ํ•œ ๋‘ ๋„์‹œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋„๋กœ์˜ ๊ธธ์ด๊ฐ€ ์ œ์ผ ์™ผ์ชฝ ๋„๋กœ๋ถ€ํ„ฐ N-1

www.acmicpc.net

ํ’€์ด

์ฒซ ๋ฒˆ์งธ ํ’€์ด

n = int(input())
distance = list(map(int, input().split()))
costs = list(map(int, input().split()))

res = distance[0] * costs[0]
m = costs[0]
dist = 0
for i in range(1, n-1):
    if costs[i] < m: 
        res += m * dist
        dist = distance[i]
        m = costs[i]
    else:
        dist += distance[i]

    if i == n-1:
        res += m * dist
        
print(res)

๋‘ ๋ฒˆ์งธ ํ’€์ด

n = int(input())
roads = list(map(int, input().split()))
costs = list(map(int, input().split()))

res = 0
m = costs[0]
for i in range(n-1):
    if costs[i] < m:
        m = costs[i]
    res += m * roads[i]

print(res)