AtCoder Beginner Contest 281 C問題 Circular Playlist
問題
提出解答
問題の概要
曲からなるプレイリストがあり, 曲 と名付けられている. 曲 の長さは 秒である.
プレイリストを曲 の順に流して行った場合, 開始から 秒後はどの曲の何秒時点か?
ただし, 曲の切り替えにかかる時間は無視できるとし, 開始から 秒後に曲が切り替わることはないケースのみ与えられる.
制約
- 開始から 秒後には曲が切り替わらない.
解法
とする. このとき, 開始から 秒後と 秒後での曲の場所は同じである.
このことから, を で割った余りを としたとき, 秒後の場所を答えれば良いことがわかる.
は余りであるから, プレイリストを完全に1周する前に 秒の地点が訪れる.
を を満たす最大の整数としたとき, 解答は曲 の 秒地点である.
なお, を求める時には が の累積和になっていることから, 時間で求めることができる.