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)