#P9066. [yLOI2023] 腐草为萤
[yLOI2023] 腐草为萤
题目背景
于盛夏之末,入夜仍灼热。
又一场离合,开始凄恻。
是扇底闪躲,或雨水摧折。
哪里都值得,恋恋不舍。
——银临《腐草为萤》
题目描述
夜幕降临,在树林中的一条平直的小径上,萤火虫们受到夜晚的呼唤,纷纷外出行动。
将小径视作数轴,一开始,共计 只萤火虫在数轴的一些整点上,从左到右依次标号为 ,第 只萤火虫的初始坐标为 。每个萤火虫有不同的亮度值, 号萤火虫的亮度为 。
在任意时刻,对任意存活的萤火虫 ,它会按如下规则飞行:
- 在当前仍存活的萤火虫中,找到与 相邻的萤火虫(可能是一只或两只)中亮度最大的一只,记其编号为 。如果 ,则 会朝着 飞行,否则 留在原地。
- 这里两只萤火虫『相邻』的定义是:若两只萤火虫之间不存在任何仍存活的萤火虫,则它们相邻。
- 萤火虫飞行的速度均为每秒一个单位长度。
萤火虫生命短暂,当两只萤火虫相遇之时(即两个萤火虫的坐标相同时),亮度值较低的萤火虫将耗尽生命,在小径上消失。显然,最后只会剩余 只萤火虫。对其余的每只萤火虫,请分别求出它们耗尽生命时的坐标。
输入格式
第一行是一个整数,表示萤火虫数量 。
第二行有 个整数,第 个整数表示标号为 的萤火虫初始坐标 。数据保证 单调递增。
第三行有 个整数,第 个整数表示标号为 的萤火虫的亮度值 。数据保证亮度值互不相同。
输出格式
输出一行 个以单个空格隔开的整数,第 个整数表示编号为 的萤火虫生命耗尽时的坐标。如果 号萤火虫最后存活下来了,则第 个数输出 0。
4
1 2 3 4
2 3 1 4
2 4 4 0
5
1 2 3 4 5
5 3 2 1 4
0 1 1 5 1
5
2 4 6 10 12
5 3 1 4 2
0 2 2 2 10
7
2 4 6 8 12 14 16
5 3 2 6 1 4 7
8 2 8 16 16 16 0
7
2 4 6 8 12 14 16
7 1 6 3 5 4 2
0 2 2 6 2 12 2
提示
样例 1 解释
- 在第一秒时,标号为 的萤火虫向右移动,标号为 的萤火虫位置不变,标号为 的萤火虫向右移动,标号为 的萤火虫位置不变。
- 第二秒开始时,萤火虫 遇到萤火虫 ,前者亮度更低,耗尽生命,此时其坐标为 ;萤火虫 遇到萤火虫 ,前者亮度更低,耗尽生命,此时其坐标为 。
- 接下来,萤火虫 向右移动,直到在坐标 遇到萤火虫 ,耗尽生命。
数据规模与约定
- 对于 的数据,。
- 对于 的数据,,。
- 对于 的数据,。
- 另有 的数据,满足特殊约定 A。
- 另有 的数据,满足特殊约定 B。
- 对 的数据,保证 ,,。且 , 是长度为 的排列。
其中:
- 特殊约定 A:数列 单调递增。
- 特殊约定 B:数列 是单峰的,仅有一个极大值。即:存在 满足 ,使得 单调递增, 单调递减.
提示
- 请注意大量数据的读入输出对程序效率造成的影响,选择合适的读入输出方式,避免超时。
- 请注意时间复杂度的常数因子对程序运行效率造成的影响。
说明
本题共有 7 个附加样例文件,见题目附件中的 glowworm.zip。