CF2111D.Creating a Schedule
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
新学期即将开始,需要为第一天制定课程表。学院共有 n 个班级和 m 个教室。已知每个班级在第一天恰好有 6 节课,并且所有班级的第 k 节课在同一时间进行。每节课都必须安排在一个教室中,并且同一时间同一个教室不能被多个班级使用。
每个教室都有自己的编号(至少为三位数),该编号除最后两位外的所有数字表示教室所在的楼层。例如,教室 479 位于第 4 层,教室 31415 位于第 314 层。楼层之间可以通过楼梯移动;对于任意楼层 x>1,可以下到 x−1 层,也可以上到 x+1 层;从第一层只能上到第二层;从第 107 层(即最高层)只能下到第 9999999 层。
院长办公室决定制定课程表,使得学生在楼层间的移动尽可能多,即所有班级在楼层间的总移动次数最大。当学生从一个楼层移动到另一个楼层时,总是选择最短路径。
例如,若 n=2,m=4,教室编号为 [479,290,478,293],则可以安排如下课程表:
节次123456班级1290478293479293479班级2293479290478290478
在这样的安排下,两个班级每次都在第 2 层和第 4 层之间移动,总共会有 20 次楼层间的移动。
请帮助院长办公室制定任意一种满足条件的课程表!
输入格式
每个测试点包含若干组测试数据。第一行包含一个整数 t(1≤t≤103),表示测试数据组数。接下来是每组测试数据的描述。
每组测试数据的第一行包含两个整数 n 和 m(1≤n≤m≤105),分别表示班级数和可用教室数。
每组测试数据的第二行包含 m 个整数 ai(100≤ai<109),表示可用教室的编号。
输入的额外约束:
- 所有教室编号两两不同;
- 所有测试数据中 m 的总和不超过 105。
输出格式
对于每组测试数据,输出 n 行,每行 6 个整数,表示第 i 个班级每节课所在教室的编号。
每一节课的同一时间,每个教室最多只能被一个班级占用。
输入输出样例
输入#1
3 2 4 479 290 478 293 1 1 31415 6 10 479 385 290 293 384 383 297 478 291 382
输出#1
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
说明/提示
在第三组测试数据中,最大移动次数为 50。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?