最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 创建课表

    正文概述 陈老师   2026-01-20 15:15:49  

    题目描述

    新学期即将开始,需要为第一天制定课表。学院共有 nn 个班级和 mm 个教室。已知每个班级在第一天的课程数为 66 节,且每个班级的第 kk 节课同时进行。每节课必须安排在一个教室中,且同一时间同一教室不能安排多个班级的课程。

    每个教室有一个编号(至少三位数),编号的最后两位表示教室的具体位置,其余数字表示教室所在的楼层。例如,教室 479479 位于第 44 层,而教室 3141531415 位于第 314314 层。学生可以通过楼梯在楼层之间移动:对于任意楼层 x>1x > 1,可以向下移动到 x1x-1 或向上移动到 x+1x+1;从第 11 层只能向上到第 22 层;从最高层(10710^7 层)只能向下到 99999999999999 层。

    学院的教务处希望制定一个课表,使得学生在不同楼层之间的移动次数最大化。当学生从一个楼层移动到另一个楼层时,他们会选择最短路径。

    例如,当 n=2n=2 个班级和 m=4m=4 个教室 [479,290,478,293][479, 290, 478, 293] 时,可以按以下方式安排课表:

    课程序号 班级1 班级2
    1 290 293
    2 478 479
    3 293 290
    4 479 478
    5 293 290
    6 479 478

    这样,班级会在第 22 层和第 44 层之间来回移动,总移动次数为 2020

    请你帮助教务处制定一个满足条件的课表!

    输入格式

    第一行包含一个整数 tt1t1031 \le t \le 10^3)——测试用例的数量。
    每个测试用例的第一行包含两个整数 nnmm1nm1051 \le n \le m \le 10^5)——班级数量和可用教室数量。
    第二行包含 mm 个整数 aia_i100ai<109100 \le a_i < 10^9)——可用教室的编号。

    输入额外约束:

    • 所有教室编号互不相同;
    • 所有测试用例的 mm 之和不超过 10510^5

    输出格式

    对于每个测试用例,输出 nn 行,每行包含 66 个整数,表示该班级的 66 节课所在的教室编号。
    每个教室在每节课时最多只能被一个班级占用。

    样例

    3
    2 4
    479 290 478 293
    1 1
    31415
    6 10
    479 385 290 293 384 383 297 478 291 382
    
    290 478 293 479 293 479
    293 479 290 478 290 478
    31415 31415 31415 31415 31415 31415
    479 290 479 290 479 290
    290 479 290 479 290 479
    293 478 293 478 293 478
    297 385 297 385 297 385
    478 293 478 293 478 293
    291 384 291 384 291 384
    

    提示

    在第三个测试用例中,最大楼层移动次数为 5050

    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 创建课表