count = [] #输入的所有数字中代表一组由多少个数字的数放入count,根据示例,最后count = [3,11]
num = [] #去除了代表count中数字的所有输入数字放入num列表
while True:
try: #从键盘输入
count_number = int(input()) #分组,count_number代表这个组有多少个数
count.append(count_number)
for j in range(count_number): #输入这一组的数
num.append(int(input()))
except:#最后一个数字输入完之后如果不输入然后回车代表输入结束
break
i = 0
for count_i in count: #count_1代表每一组有多少个数
locals()['b_'+str(i)] = [] #以变量作为列表名称,b_0代表第一组的所有数字
for j in range(count_i): #每一组的每一个数
pop_num = num.pop(0) #从num中弹出(输出并删除)第一个数字
locals()['b_'+str(i)].append(pop_num) #插入
locals()['b_'+str(i)] = list(set(locals()['b_'+str(i)])) #set去除所有重复项,但是输出为字典,所以需要再变为list
locals()['b_'+str(i)].sort(reverse = False) #从小到大排序,sort()默认正序,如果逆序的话需要reverse = True
i = i + 1
input_num = len(count)
i = 0
for i in range(input_num):#每一组分别输出
for i_output in locals()['b_'+str(i)]:
print(i_output)
思路:先将所有的输入的数字以代表组的大小的数字和每组的数字(学号),再通过代表每组大小的数字将num分到不同的组,将这些组去重复再正向排序,最后一一输出即可。 ps:题目对输入的描述不太清楚,其实认为最后一个输入完成之后,再空输入一个enter即认为结束输入