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