問題一覧 > 通常問題

No.2865 Base 10 Subsets 2

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 102
作問者 : yuusaan / テスター : 寝癖 👑 seekworser
2 ProblemId : 11049 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2024-08-19 20:03:55

ストーリー

あなたはゆ~さんの並行世界の研究の助手をしていますが...あるとき、並行世界の一つにゆ~さんと一緒に巻き込まれてしまいました。

ゆ~さんはあたりを見回して、一つのことに気が付きました。「この世界、数の数え方がとても気持ち悪いな...」

我々の世界では基本的に 1010 進数が用いられており、各桁は 99 を超えないようになっています。しかし、この世界では各桁ごとに別々に値の上限を決めてそれを超えないように値をカウントしているようです。

「まるでヤード・ポンド法だ。よし君、この世界の数として小さいほうから KK 番目の値をすぐに計算できるようなコードを書いておいてくれ。あっ、あれは一体..?」

ゆ~さんは頼むだけ頼んだら、この世界で気になる物を見つけたのか目を輝かせてどこか遠くへ走って行ってしまいました。...戻ってくるまでに頼まれたコードを書いておきましょうか。

問題文

BB が十進法において AA の部分集合であるとは、十進法の各桁において、BB の値が AA 以下であることを表すものとします。

より厳密には、以下の通りです。

AAa0×100+a1×101+a_0\times 10^0 + a_1 \times 10^1 +\dotsBBb0×100+b1×101+b_0 \times 10^0 + b_1 \times 10^1 +\dots ( 00 ai,bi\leq a_i , b_i \leq 99 )

と表す方法はそれぞれ一意に定まるが、その方法において任意の非負整数 ii について aibia_i \geq b_iが成り立つ。


非負整数 NN と正整数 KK が与えられます。十進法において NN の部分集合である非負整数のうち KK 番目に小さいものを出力してください。

入力

N KN\ K

制約

  • 0N10180\leq N\leq 10^{18}
  • 1K10181\leq K\leq 10^{18}
  • 十進法において NN の部分集合である非負整数は KK 個以上存在する

出力

答えを一行に出力し、最後に改行してください。

サンプル

サンプル1
入力
12 3
出力
2

十進法において 1212 の部分集合である数は小さい順に 0,1,2,10,11,120,1,2,10,11,12 です。

したがって、その中で 33 番目に小さい 22 を出力します。

サンプル2
入力
0 1
出力
0

唯一、十進法において 00 の部分集合である 00 を出力します。

サンプル3
入力
1000000000000000000 2
出力
1000000000000000000

答えが 3232bit整数型に収まらない場合があることに注意してください。

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