编程题:座位安排
在某次上机考试时,座位安排规则如下:
* 先按考生姓名的字典序排列,若姓名相同则再按学号升序排序;在排好序之后依次从1号机位开始安排座位;
* 若某个机位的电脑损坏了,则原来安排在该位置上的考生从当前最后一位考生之后的机位开始重新安排。
请根据输入的学生信息及电脑损坏的机位,安排好该次考试的学生座位。
### 输入格式:
首先输入一个正整数$T$,表示测试数据的组数。对于每组测试数据,首先输入一个整数$n(1<n<=80)$,表示考生数;然后输入$n$行,每行包含2个以一个空格间隔的字符串,分别表示一个考生的学号(长度不超过10,且仅包含数字字符,可能以0开头)和姓名(长度不超过15,且仅包含英文字母);最后输入一行整数,其中第一个整数$m(1<=m<=20)$表示损坏电脑的数量,接着是$m$个电脑损坏的机位(不超过$n$)。
### 输出格式:
对于每组测试,输出$n+1$行,第1行是“Case $i$:”,其中$i$是该组测试的序号(从1开始),接着输出$n$个座位安排信息$“xxx:sno\ sname”$,其中$xxx$表示以3位整数表示的座位号(不足3位则左补0),$sno、sname$分别表示该座位上考生的学号和姓名。另外,要求每两组测试之间留一个空行。
### 输入样例:
in
2
5
01004 Zhangsan
01002 Lisi
01003 Wangwu
01005 Zhaoliu
01001 Lisi
3 5 1 3
5
1004 Zhangsan
1002 Lisi
1003 Wangwu
1005 Zhaoliu
1001 Lisi
1 5
### 输出样例:
out
Case 1:
002:01002 Lisi
004:01004 Zhangsan
006:01001 Lisi
007:01003 Wangwu
008:01005 Zhaoliu
Case 2:
001:1001 Lisi
002:1002 Lisi
003:1003 Wangwu
004:1004 Zhangsan
006:1005 Zhaoliu
answer:若无答案欢迎评论
* 先按考生姓名的字典序排列,若姓名相同则再按学号升序排序;在排好序之后依次从1号机位开始安排座位;
* 若某个机位的电脑损坏了,则原来安排在该位置上的考生从当前最后一位考生之后的机位开始重新安排。
请根据输入的学生信息及电脑损坏的机位,安排好该次考试的学生座位。
### 输入格式:
首先输入一个正整数$T$,表示测试数据的组数。对于每组测试数据,首先输入一个整数$n(1<n<=80)$,表示考生数;然后输入$n$行,每行包含2个以一个空格间隔的字符串,分别表示一个考生的学号(长度不超过10,且仅包含数字字符,可能以0开头)和姓名(长度不超过15,且仅包含英文字母);最后输入一行整数,其中第一个整数$m(1<=m<=20)$表示损坏电脑的数量,接着是$m$个电脑损坏的机位(不超过$n$)。
### 输出格式:
对于每组测试,输出$n+1$行,第1行是“Case $i$:”,其中$i$是该组测试的序号(从1开始),接着输出$n$个座位安排信息$“xxx:sno\ sname”$,其中$xxx$表示以3位整数表示的座位号(不足3位则左补0),$sno、sname$分别表示该座位上考生的学号和姓名。另外,要求每两组测试之间留一个空行。
### 输入样例:
in
2
5
01004 Zhangsan
01002 Lisi
01003 Wangwu
01005 Zhaoliu
01001 Lisi
3 5 1 3
5
1004 Zhangsan
1002 Lisi
1003 Wangwu
1005 Zhaoliu
1001 Lisi
1 5
### 输出样例:
out
Case 1:
002:01002 Lisi
004:01004 Zhangsan
006:01001 Lisi
007:01003 Wangwu
008:01005 Zhaoliu
Case 2:
001:1001 Lisi
002:1002 Lisi
003:1003 Wangwu
004:1004 Zhangsan
006:1005 Zhaoliu
answer:若无答案欢迎评论