M-SOLUTIONS プロコンオープン 2020 D - Road to Millionaire【Python】

https://atcoder.jp/contests/m-solutions2020/tasks/m_solutions2020_d

AtCoder ProblemsのRecommendationでDifficulty: 665、Solve Probability: 40%でした。

初期状態として株価の最小値を1つ目の株価、最大値を0として、
現在の株価と一つ前の株価を比較して場合分けを行いました。

N = int(input())
A = list(map(int, input().split()))
cur_min = A[0]
cur_max = 0
money = 1000
pre_price = A[0]
for i in range(1, N):
    cur_price = A[i]
    if cur_price > pre_price:
        cur_max = cur_price
        if i == N-1:
            num = (money // cur_min)
            money -= num * cur_min
            money += num * cur_max
    else:
        if cur_max > cur_min:
            num = (money // cur_min)
            money -= num * cur_min
            money += num * cur_max
            cur_max = 0
        cur_min = cur_price
    pre_price = cur_price

print(money)