CF2216A.Course Wishes

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Course Wishes

QWQwaii正在注册nnn50n\le 50)课程。在注册系统中,他可以提交每门课程的课程愿望,以表明他优先选修该课程的优先级。

课程意愿分为k+1k+1k20k\le 20)优先级,11级为最高优先级,k+1k+1级为最低。

kk愿望等级有容量限制:每个1ik1 \le i \le k最多只能分配一个愿望等级iiaia_i个球场。请注意,愿望等级k+1k+1没有容量限制。

最初,ii门课程有愿望等级bib_i,且保证该初始作业满足所有容量限制。现在qwqkawaii想把所有赛道调整成许愿k+1k + 1级。为此,他最多只能在10001000次应用以下操作:

  • 选择一条ii1in1\le i\le n)的课程,然后将bib_i增加11

请注意:

  • 不能选k+1k+1级课程;
  • 每次操作后,仍必须满足所有容量限制。

你的任务是构造一个最多包含10001000操作的有效调整序列,否则报告它不可能。

输入

每个测试包含多个测试用例。第一行包含测试用例数量tt1t501 \le t \le 50)。以下是测试用例的描述。

每个测试用例的第一行包含两个整数nnkk1n501 \le n \le 501k201 \le k \le 20)——分别是课程数量和优先级数量(不包括最低优先级)。

第二行包含kk整数a1,a2,,aka_1, a_2, \ldots, a_k1ain1 \le a_i \le n)——第一kk愿望等级的容量限制。

第三行包含nn整数b1,b2,,bnb_1, b_2, \ldots, b_n1bik+11 \le b_i \le k+1)——即各条的初始愿望等级。

保证初始分配满足所有容量限制。

输出

对于每个测试用例,如果无法达到目标状态,打印一个整数的 1-1

否则,在输出的第一行打印操作次数mm0m10000 \le m \le 1000)。

然后打印一行,mm整数u1,u2,,umu_1, u_2, \ldots, u_m1uin1 \le u_i \le n),表示在第ii操作中,你将愿望水平提高buib_{u_i}当然uiu_i11

注释

在第一个测试案例中,最初,愿望等级是[1,2,2][1, 2, 2]的。容量限制是a1=2a_1=2a2=2a_2=2。操作如下:

  1. 将课程22提升到33级。现在愿望等级已经是[1,3,2][1,3,2]
  2. 将课程11提升到22级。现在愿望等级已经是[2,3,2][2,3,2]
  3. 将课程33提升到33级。现在愿望等级已经是[2,3,3][2,3,3]
  4. 将课程11提升到33级。现在愿望等级[3,3,3][3,3,3],符合目标。

在第二个测试案例中,初始状态已经完全是目标状态,因此无需操作。

样例

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

1
1 
8
2 4 1 2 1 1 5 4

在线编程 IDE

建议全屏模式获得最佳体验