loj#P4019. 「CEOI2023」Brought Down the Grading Server?
「CEOI2023」Brought Down the Grading Server?
题目描述
题目译自 CEOI 2023 Day1 T3「Brought Down the Grading Server?」
忙碌的首个比赛日已经过去……虽然科学委员会艰难地击退了对测评服务器的黑客攻击,但他们担心这影响了提交的评分。现在只有一个选择:所有提交都必须重测!
测评服务器有 个处理器核心。委员会已经给每个核心安排了一个由 份提交组成的列表,每份提交属于比赛中 道题(编号为 )中的一道。委员会确定了 是二的幂。(由于一个 bug(Wolfgang 你有一个新需求),否则测评系统会崩溃,导致所有防火墙瘫痪,并可能暴露敏感信息!)现在,在接下来 分钟,每分钟每个核心会测评列表里恰好一个提交。
不幸的是,包含测评数据的数据库十分脆弱,如果同时请求单题数据的次数变化很大,数据库就会崩溃。因此,委员会希望对每个核心题目的提交进行排序,以便在重测时,每道题同时测评的最大和最小提交数最多相差一份。
写一个程序计算这样对于每个核心的提交排序方式。
输入格式
第一行包含三个整数 ,含义如题目描述。
接下来 行,每行描述分配给每个核心的提交。第 行包含 个整数 ,表示第 个核心分配到了测评题目 的提交。
输出格式
你的程序需要输出 行,描述提交到每个核心的分配方案,从而使每道题同时测评的最大和最小提交数最多相差一份: 第 行应包含 个整数 ,表示第 个核心在第 分钟测评一份对题目 的提交。保证对于每个测试点,这样的分配方案均存在。
3 2 3
1 2
2 3
2 3
2 1
3 2
2 3
对于第一个样例的输出,对于题目 和 ,连续测评的提交数最大值和最小值之差为 ,对于题目 这个值为 。另一方面,按输入排列提交不是一个合法的输出,因为这时对于题目 ,连续测评的提交数最大值和最小值之差为 。
3 4 3
2 3 2 2
2 3 3 2
2 2 3 2
2 2 2 3
3 2 3 2
2 3 2 2
对于第二个样例的输出,对于所有三道题,连续测评的提交数最大值和最小值之差为 。
数据范围与提示
对于所有数据,满足 。保证存在正整数 使得 。
详细子任务附加限制及分值如下表所示。
子任务 | 附加限制 | 分值 |
---|---|---|
无附加限制 |
在子任务 中,你可以如「分值」一栏所示获得部分分:
- 第一个数字代表如果你解决了所有满足 且每道题的提交总数能被 整除的测试点所能获得的分值。
- 第二个数字代表如果你解决了所有满足 的测试点所能获得的附加分值。
- 第三个数字代表如果你解决了所有测试点所能获得的附加分值。
在 LibreOJ,对于第 个子任务的第 个部分分,测评页面中显示为第 个子任务。如第 个子任务的第 个部分分显示为第 个子任务。