#agc039c. [agc039_c]Division by Two with Something
[agc039_c]Division by Two with Something
問題文
整数 が与えられます。 以上 以下のすべての整数 に対し、 に以下の操作を繰り返すことによって次に に戻るまでの操作回数 (戻らない場合 ) を足し合わせた値を で割ったあまりを求めてください。
- 現在の整数が奇数なら、 を引いて で割る。そうでなければ、 で割って を足す。
制約
- は 進表記でちょうど 桁与えられる ( が 桁より少ない場合、leading zero をつけて与えられる。)
- 入力はすべて整数である
入力
入力は以下の形式で標準入力から与えられる。
出力
以上 以下のすべての整数に対し、 操作を繰り返すことによってもとの整数に戻るまでの操作回数 (戻らない場合 ) を足し合わせた値を で割ったあまりを出力せよ。
入力例 1
3
111
出力例 1
40
例えば、 のとき、操作によって整数は と順に変化します。したがって、 のときの操作回数は です。
入力例 2
6
110101
出力例 2
616
入力例 3
30
001110011011011101010111011100
出力例 3
549320998