配点 : 1100 点
問題文
正整数 S,K が与えられます。正整数列 A=(A1,A2,…,AN) は、次の 2 条件を満たすとき、良い数列であるといいます。
- 1≤A1<A2<⋯<AN≤S−1 が成り立つ。
- 任意の非負整数列 (x1,x2,…,xN) に対して ∑i=1NAixi=S が成り立つ。
項数 N が最大であるような良い数列のうち、辞書順最小のものを A=(A1,A2,…,AN) とします。この数列の第 K 項 AK を出力してください。ただし K>N である場合には -1
と出力してください。
T 個のテストケースが与えられるので、それぞれについて答えを求めてください。
制約
- 1≤T≤1000
- 3≤S≤1018
- 1≤K≤S−1
入力
入力は以下の形式で標準入力から与えられます。
T
case1
⋮
caseT
各テストケースは以下の形式で与えられます。
S K
出力
T 行出力してください。i 行目には、casei に対する答えを出力してください。
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,10 の場合には、A は次の数列になります。
- S=3 の場合:A=(2)
- S=7 の場合:A=(2,4,6)
- S=10 の場合:A=(3,6,8,9)