AtCoder Beginner Contest 290 D問題 Marking
問題
提出解答
問題の概要
マス と名付けられた 個のマス目に次のようにして印を付けていく.
- 最初, マス に印を付ける.
- 以下の手順を 回繰り返す.
- 直前に印を付けたのがマス であるとしたとき, とする.
- マス に印がついている限り, とする.
- マス に印を付ける.
個のテストケースについて答えよ.
制約
解法
この説明では非負整数 と 以上 未満の整数 に対して, マス とマス を同一視することにする.
このとき, とすると, 印の付け方は次のように上から実行される.
ここで, 上から 段目にある という整数は で割ると 余る 以上 以下の整数全てである.
このことを頭に入れておくと, 回の印付けで余りが 増えるだけで後は繰り返しであるというふうに見ることができ, 求めるべき答えとして以下のように立式できる.
ここで, を で割った商と余りを とすると,
となるが, であるから, であるから,
よって, 最終解答として
を得る.
1テストケース当たり 時間で計算できるので, 全体でも 時間で計算でき, 十分高速である.