#HK5425. 「OOI 2017 Day 1」高效测试
「OOI 2017 Day 1」高效测试
题目描述
题目译自 Open Olympiad in Informatics 2017 Day1 T3 「Эффективное тестирование / Efficient Evaluation」。
从 年开始,所有编程奥林匹克竞赛的组织者一致同意仅通过互联网举办比赛,为此成立了有限责任公司「在线奥林匹克组织」(简称 OOO)。显然,这样一个重要的组织不能没有自己的评测系统,因此他们聘请了高效的经理,购买了白板,并准备了蓝色胶带。
为了提高评测过程的效率,开发了以下架构。最初,任务的所有 个测试点按照从 到 的顺序排列在评测队列中。然后,规划模块依次执行 个操作。第 个操作包括选择队列中从位置 到 (包含两端,以 开始编号)的片段,并在该片段上每隔一个测试点进行解决方案的检查,即在队列位置 上的测试点(保证 和 具有相同的奇偶性)。随后,被检查的测试点从队列中删除,剩余的测试点向前移动以填补空位,确保队列中没有空隙。例如,如果队列中包含测试点的原始编号为 ,并且执行了一个操作 ,,那么解决方案将在位置 、 和 的测试点上进行评测,这些测试点的原始编号为 。操作完成后,评测队列将包含原始编号为 的测试点。
你的任务是实现一个模块,对于上述 个操作中的每一个,确定在该步骤中检查的测试点中,原始编号的最小值和最大值。
输入格式
输入数据的第一行包含两个数字 和 ,分别表示规划模块的操作数量和任务中的测试点数量。
接下来的 行,每行包含两个整数 和 ,表示第 个规划模块操作的参数。保证在执行第 个操作之前,评测队列中至少有 个测试点,并且 和 具有相同的奇偶性。
输出格式
对于 个规划模块操作中的每一个,输出两个整数,即在该步骤中检查的测试点中,原始编号的最小值和最大值。
2 10
2 8
1 3
2 8
1 5
让我们看一下第一个样例中评测队列是如何变化的:
- 最初,评测队列包含从 到 的所有测试点,即队列为 。
- 执行第一个请求时,将删除测试点 ,队列变为 。
- 执行第二个请求时,将删除测试点 和 ,队列变为 。
4 6
1 1
1 1
1 1
2 2
1 1
2 2
3 3
5 5
数据范围与提示
详细子任务附加限制及分值如下表所示。其中子任务 是样例。
| 子任务 | 分值 | 附加限制 | 子任务依赖 | 备注 |
|---|---|---|---|---|
| , | ||||
| , | ||||