atcoder#AGC057D. [AGC057D] Sum Avoidance

[AGC057D] Sum Avoidance

配点 : 11001100

問題文

正整数 S,KS, K が与えられます。正整数列 A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N) は、次の 22 条件を満たすとき、良い数列であるといいます。

  • 1A1<A2<<ANS11\leq A_1 < A_2 < \cdots < A_N \leq S - 1 が成り立つ。
  • 任意の非負整数列 (x1,x2,,xN)(x_1, x_2, \ldots, x_N) に対して i=1NAixiS\sum_{i=1}^NA_ix_i\neq S が成り立つ。

項数 NN が最大であるような良い数列のうち、辞書順最小のものを A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N) とします。この数列の第 KKAKA_K を出力してください。ただし K>NK > N である場合には -1 と出力してください。

TT 個のテストケースが与えられるので、それぞれについて答えを求めてください。

制約

  • 1T10001\leq T\leq 1000
  • 3S10183\leq S\leq 10^{18}
  • 1KS11\leq K \leq S - 1

入力

入力は以下の形式で標準入力から与えられます。

TT

case1\text{case}_1

\vdots

caseT\text{case}_T

各テストケースは以下の形式で与えられます。

SS KK

出力

TT 行出力してください。ii 行目には、casei\text{case}_i に対する答えを出力してください。

13
3 1
3 2
7 1
7 2
7 3
7 4
10 1
10 2
10 3
10 4
10 5
2022 507
1000000000000000000 999999999999999999
2
-1
2
4
6
-1
3
6
8
9
-1
1351
-1

S=3,7,10S = 3, 7, 10 の場合には、AA は次の数列になります。

  • S=3S=3 の場合:A=(2)A = (2)
  • S=7S=7 の場合:A=(2,4,6)A = (2,4,6)
  • S=10S=10 の場合:A=(3,6,8,9)A = (3,6,8,9)