C - Combination 解説 /

実行時間制限: 2.5 sec / メモリ制限: 1024 MiB

配点 : 800

うさぎとねこの国では今,4 匹で遊ぶゲームが大流行しています.

問題文

1 個の入力ファイルにつき T 個のテストケースが与えられる.各テストケースで正整数 M, N と整数 A_1, A_2, \ldots, A_M が与えられるので,以下の問に答えよ.

M 匹のうさぎと N 匹のねこがいる.うさぎには 1, 2, \ldots, M と,ねこには 1, 2, \ldots, N と番号がついている.

2 匹のうさぎと 2 匹のねこを選ぶ方法 \binom{M}{2} \binom{N}{2} 通りのそれぞれについて,選ばれた 4 匹でちょうど 1 回ゲームを行い,各ゲームで 4 匹のうち勝者 1 匹を決定した.そして,

  • うさぎ i (1 \le i \le M) が勝者となった回数 a_i
  • ねこ j (1 \le j \le N) が勝者となった回数 b_j

を記録した.

ゲームの結果によって (a_1, a_2, \ldots, a_M) = (A_1, A_2, \ldots, A_M) となることがありうるか判定し,ありうる場合はその条件下で数列 (b_1, b_2, \ldots, b_N) としてありうるもののうち辞書順で最小のものを求めよ.

制約

  • 1 \le T \le 10^5
  • 2 \le M \le 10^6
  • 2 \le N \le 10^6
  • 0 \le A_i \le (M-1) \binom{N}{2}   (1 \le i \le M).
  • 1 個の入力ファイルにおける M の総和は 10^6 以下.
  • 1 個の入力ファイルにおける N の総和は 10^6 以下.

入力

標準入力の 1 行目にテストケースの個数 T が与えられる.その後,T 個のテストケースがそれぞれ以下の形式で与えられる.

M N
A_1 A_2 \cdots A_M

出力

各テストケースについて順番に 1 行ずつ,以下のように出力せよ.

(a_1, a_2, \ldots, a_M) = (A_1, A_2, \ldots, A_M) となることがありうる場合, その条件下で数列 (b_1, b_2, \ldots, b_N) としてありうるもののうち辞書順で最小のものを,以下の形式で出力せよ.

b_1 b_2 \cdots b_N

(a_1, a_2, \ldots, a_M) = (A_1, A_2, \ldots, A_M) となることがありえない場合,

-1

と出力せよ.


入力例 1

3
2 3
0 1
4 3
2 1 1 0
4 5
30 30 30 30

出力例 1

0 0 2
0 2 12
-1

1 個目のテストケースにおいて,ゲームの結果が以下のようであったとする:

  • 「うさぎ 1,うさぎ 2,ねこ 1,ねこ 2」が選ばれたゲームでは,うさぎ 2 が勝者
  • 「うさぎ 1,うさぎ 2,ねこ 1,ねこ 3」が選ばれたゲームでは,ねこ 3 が勝者
  • 「うさぎ 1,うさぎ 2,ねこ 2,ねこ 3」が選ばれたゲームでは,ねこ 3 が勝者

このとき,(a_1, a_2) = (0, 1) = (A_1, A_2) となり,(b_1, b_2, b_3) = (0, 0, 2) となる.

一方 (b_1, b_2, b_3)(0, 0, 2) より辞書順で小さくなることはないので,(0, 0, 2) が答えとなる.