AtCoder Beginner Contest 221 D問題 Online games
問題
提出解答
問題の概要
あるオンラインゲームは 人のプレイヤーがおり, 番目のプレイヤーは 日目から 日目のみ全てログインしている. において, ちょうど 人がログインしている日数をそれぞれ求めよ.
制約
解法
各日のそれぞれのログイン人数そのものではなく, 差分を求めることにする. で 日目と 日目のログイン人数の差分を表すとする (増えるならば, ).
日目から 日まで連続でログインするということは,
- は 増え
- は 減る
この を利用し, 日目のログイン人数を とすると,
である. しかし, は 高々 個以外は全て であることから, を辞書で記録し, となる を昇順に列挙し, 飛ばした日数に注意して, 人がログインした日数を加算することにより, 計算量 で求めることができる.