AtCoder Beginner Contest 154 D - Dice in Line 【Python】
https://atcoder.jp/contests/abc154/tasks/abc154_d
AtCoder ProblemsのRecommendationで Difficulty: 485、Solve Probability: 43%でした。
こちらの問題
https://atcoder.jp/contests/abc210/tasks/abc210_c
の解説で尺取法を知ったので同様の解法で解くことができましたが、Kが1の時を考慮しておらずWAとなってしまったのは反省点です。
N, K = map(int, input().split()) P = list(map(int, input().split())) # それぞれのサイコロの出る目の期待値を入れたリスト e = [] for i in range(N): e.append(((1+P[i])*P[i])/2/P[i]) v = 0 ans = 0 for i in range(N): # 加える期待値 ce = e[i] # 減らす期待値 re = e[i-K] if i < K: v += ce else: v += ce v -= re ans = max(ans, v) print(ans)