GP28433. 检验线
题目描述
题目描述
车间里有 个不可拆分的工件批次。每个批次都含有 个标准件和 个抽检件。批次 的每个标准件硬度均为 ,抽检件硬度为 。
你需要将所有批次排列在检验线上。设排列为 。对于任意 ,分别从批次 和批次 中选取一个工件;如果前一个工件的硬度严格大于后一个工件的硬度,就产生 单位罚值。所有这样的跨批次工件对产生的罚值之和记为 。硬度相等不会产生罚值,同一批次内部的工件对不计入 。
请找出使 最小的批次排列。如果有多个排列的罚值同为最小,输出编号序列字典序最小的一个。对于两个不同的编号序列,它们在第一个不同的位置上编号较小的序列字典序更小。
输入格式
从文件 inspection.in 中读取数据。
第一行输入两个整数 ,分别表示批次数和每个批次中的标准件数。
接下来 行,第 行输入两个整数 ,表示批次 的标准件硬度和抽检件硬度。
输出格式
输出到文件 inspection.out 中。
输出一行 个整数 ,表示所求的批次排列。由于规定了字典序最小的取法,答案唯一。
样例
5 3
4 1
2 9
4 7
2 3
4 1
4 2 1 5 3
样例解释
样例 #1 中,排列 的罚值为 ,不存在罚值更小的排列。批次 和批次 的两种硬度完全相同,把批次 放在批次 前面可使编号序列字典序更小。
数据规模与约定
对于所有数据,保证:
- ;
- ;
- ;
- 。
本题采用子任务捆绑计分。只有通过某个子任务内的所有测试点,才能获得该子任务的分数。各子任务独立计分。
各子任务的数据范围如下:
| 子任务编号 | 分值 | 额外约束 |
|---|---|---|
| 1 | 15 | |
| 2 | 20 | 对所有 ,均有 |
| 3 | 25 | |
| 4 | 40 | 无特殊限制 |