問題一覧 > 通常問題

No.28 末尾最適化

レベル : / 実行時間制限 : 1ケース 5.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 95
作問者 : kroton
1 ProblemId : 9 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2015-11-14 17:50:28

問題文

X0=seed
Xn=1+(Xn12+Xn1×12345) % 100000009    (1nN)

ただし % は剰余演算とする

上の定義から作られる N+1 個の要素を持つ数列 X の中から K 個数字を選びそれらを掛け合わせ T とおく。
TB 進数に変換した時末尾の0の数が最小となる T では末尾の0の数はいくつになるか答えよ。

例えば
B=18T が10進数で「612」なら T は18進数で「1g0」なので末尾の0の数は1個
B=3T が10進数で「36」なら T は3進数で「1100」なので末尾の0の数は2個

入力

Q
seed1 N1 K1 B1
seed2 N2 K2 B2

seedQ NQ KQ BQ
  • 1行目は Q(1Q1000) が与えられる。
  • 2行目からの Q 行では seed(1seed100000009), N(1N10000), K(1KN+1), B(2B36) の組が与えられる。

出力

Q 個の組ごとに末尾の0の数の最小を計算しそれぞれ出力せよ。ただし末尾に改行をつけること。

サンプル

サンプル1
入力
4
98808561 8 6 18
61316635 15 11 4
37650646 100 86 20
98630457 1000 647 2
出力
1
2
6
142

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。