問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
「ある数でつくられた数列」では k が 1 ≦ k ≦ 1000 と大きく、計算量を意識する必要がありましたがこの問題では k が最大で 30 と小さくなっています。part 3 で学んだ重複排除と配列を駆使して解答してみましょう。
入力は以下のフォーマットで与えられます。
P_1 P_2 P_3 k
3 つの素数を表す整数 P_1, P_2, P_3 と数列の出力する項を表す整数 k がこの順で半角スペース区切りで与えられます。
入力は 1 行となり、末尾に改行が 1 つ入ります。
数列の k 番目に小さい数を出力してください。
答えは 64 bit 符号付き整数の範囲に収まります。
末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
* 入力はすべて整数
* 1 ≦ A_1, A_2, A_3 ≦ 10
* 1 ≦ N ≦ 10^5
* 1 ≦ b_i ≦ 10^5
2 3 5 7
8
3 2 7 1
1
3 5 7 1000
81716054175