#100. 「2024 广东省赛」小班课

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:Special Judge
上传者: woruo

题目描述

欢迎加入广东最大网戒中心(广东民间OIer、XCPCer交流群):825777247

题目描述

在 P 大学中,很多课程设立了小班课,学生可以自由根据需求选择小班课。当然,小班课的容量并不是无限的,并不是每个学生都能选上心仪的小班课。

本学期,共有 名同学报名了 A 课程,该课程共设立了 门小班课,第 门小班课有容量 。第 名学生对小班课有一个意向度序列 ,其中 表示意向度最高的课程, 表示意向度最低的课程。如果一门小班课 不在这个序列里,那么说明学生 无法参加第 门小班课。

学生们按照 的顺序进行选课,每次会选择优先度最高且未满的小班课,如果所有 都已满,那么该学生不会选择任何小班课。

现在给出每个学生的意向度序列,请重排学生的顺序,使得选上小班课的学生最多。并构造方案。

输入格式

从标准输入读入数据。

第一行一个正整数 ,表示数据组数。

对于每组数据,第一行两个正整数 ,即学生数量和小班课数量。

之后一行 个非负整数 ,即每一门小班课的容量。

之后 行,每行首先是一个非负整数 ,之后是 个两两不同的正整数 ,表示意向度序列。

输出格式

输出到标准输出。

对于每组数据,输出两行,第一行为一个整数 表示答案,之后一行 个数,为一个 的排列,表示构造的方案。如果有多种方案,输出任意一种即可。

样例1输入

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

样例1输出

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

样例1解释

对于第一组数据,按照给定的方案,学生 首先选择 ,然后学生 选择 ,学生 选择 ,学生 尝试选择 但都已满员,所以最终选择 ,学生 尝试选择 但已满员,所以最终选择 。该组数据的方案不唯一,例如, 也是一个可行解。

对于第二组数据, 是一个可行解,如果这样构造,那么学生 会分别选择 ,这时对于学生 都已满员,因此无法选择任何课程。

输入格式

place holder

输出格式

place holder

样例

place holder

数据范围与提示

place holder