atcoder#AGC039C. [AGC039C] Division by Two with Something
[AGC039C] Division by Two with Something
题目描述
整数 が与えられます。 以上 以下のすべての整数 に対し、 に以下の操作を繰り返すことによって次に に戻るまでの操作回数 (戻らない場合 ) を足し合わせた値を で割ったあまりを求めてください。
- 現在の整数が奇数なら、 を引いて で割る。そうでなければ、 で割って を足す。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
以上 以下のすべての整数に対し、 操作を繰り返すことによってもとの整数に戻るまでの操作回数 (戻らない場合 ) を足し合わせた値を で割ったあまりを出力せよ。
题目大意
题目描述
现在给你一个整数和一个二进制数,对之间的每个整数在返回到其原始值之前,需要执行多少次下面的操作:
如果是奇数
如果是偶数
输入格式
第一行输入一个整数,第二行输入一个位的整数。
输出格式
一个整数,表示之间的每个整数在返回到其原始值之前,需要执行的操作次数的总和。
由于答案可能过大,请对最终答案。
说明/提示
- 是一个长度为的二进制数(的数位不足时用前导补齐)
- 所有数字都是整数
例如,时,操作为:1,0,4,6,7,3,所以时答案是。
3
111
40
6
110101
616
30
001110011011011101010111011100
549320998
提示
制約
- は 進表記でちょうど 桁与えられる ( が 桁より少ない場合、leading zero をつけて与えられる。)
- 入力はすべて整数である
Sample Explanation 1
例えば、 のとき、操作によって整数は と順に変化します。したがって、 のときの操作回数は です。