#loj5436. 「OOI 2016 Day 2」蝙蝠侠归来
「OOI 2016 Day 2」蝙蝠侠归来
[AdditionalFile5436.zip](file://AdditionalFile5436.zip?type=additional_file)
#5436. 「OOI 2016 Day 2」蝙蝠侠归来
标签: 传统 | 时间限制: 2500 ms | 内存限制: 256 MiB |
题目描述
题目译自 Open Olympiad in Informatics 2016 Day2 T2 「Бэтмен возвращается / Batman Returns」。
如今的哥谭市由一条街道组成,沿街排列着 座摩天大楼。这些大楼从西到东依次编号为 到 ,其中第 座大楼的高度为 。
每天傍晚,蝙蝠侠都会在城市上空进行巡逻飞行。他会爬到一座摩天大楼的屋顶,然后从那里滑翔到另一座大楼的屋顶。由于持续的强风,他只能向西方向滑翔,但飞行中几乎不损失高度。因此,他只能从编号为 的大楼滑翔到编号为 的大楼,前提是 且 。蝙蝠侠在飞行中操控自如,因此 和 之间的大楼高度和数量无关紧要。出于对城市犯罪率的担忧,蝙蝠侠会选择合适的 和 ,使得 的值尽可能大。
市政府制定了 个城市重建计划。根据第 个计划,只有编号从 到 (包含两端)的大楼会被保留,其余大楼将被拆除。蝙蝠侠不喜欢不确定性,因此对于每个重建计划,他希望提前知道在剩余城市部分进行巡逻的最佳方式,即找到一对 和 ,满足 ,,且 的值最大。
输入格式
第一行包含一个整数 ,表示沿街摩天大楼的数量。
第二行包含 个整数 ,表示从西到东各摩天大楼的高度。
第三行包含一个整数 ,表示城市重建计划的数量。
接下来的 行,每行包含两个整数 和 ,表示第 个计划中市政府计划保留编号从 到 (包含两端)的大楼。
输出格式
对于每个重建计划,输出两个整数,即最佳的 和 。如果巡逻变得不可能,则输出 -1 -1。
如果存在多个最佳大楼对,可以输出其中任意一对。
样例 1
输入
4
2 3 1 4
2
2 3
1 3
输出
-1 -1
1 2
在第一个样例中:
- 对于第一个查询,仅有的可用大楼对高度为 和 ,但不满足条件 ,因此无解。
- 对于第二个查询,大楼 和 组成的对满足条件,高度分别为 和 。
样例 2
输入
7
5 4 2 4 3 1 5
4
2 6
2 7
1 7
3 7
输出
3 5
2 7
2 7
3 7
在第二个样例中:
- 对于第一个查询,符合条件的大楼对有高度 和 ,以及 和 。第一对距离更大,因此是正确答案。
数据范围与提示
详细子任务附加限制及分值如下表所示。其中子任务 是样例。
| 子任务 | 测试点编号 | 分值 | 附加限制 | 备注 |
|---|---|---|---|---|
| -- | ||||