問題はこちら
問題概要
人が円周上に並んでいる.番目の人は時刻に宝石をもらうと時間後にその宝石を番目の人に渡す.ただし,とする.また,高橋君は時刻に番目の人に宝石を渡す.すべてのについて,番目の人が初めて宝石をもらう時刻を求めよ.解説
優先度付きキューを用います.最初に優先度付きキューにを入れます(人が時刻に宝石をもらった).キュー内の最小値を取り出し,まだ人が宝石をもらったことが無いならそのが答えです.その後,をキューに入れます.これを繰り返すことですべての答えを求めることができます.
キューの内部は常にすべての宝石がいつどこにあるかという情報が入っています.
kyopro_friendsさんの公式解説と本質は同じです.