#P17006. [NWERC 2019] Height Profile
[NWERC 2019] Height Profile
背景
译自 Northwestern Europe Regional Contest (NWERC) 2019。
题目描述
自行车经典赛 Amstel Gold Race 每年在附近的荷兰林堡省举行。比赛中有许多短而频繁的爬坡,选手几乎没有时间在两段爬坡之间恢复。例如,该比赛最后 千米中有 段陡坡,平均每段大约 千米。
每段爬坡的坡度以百分比给出。坡度为 表示每水平前进 米,竖直方向也上升 米。坡度为 表示完全平坦。一般地,坡度为 表示每水平前进 米,竖直方向变化 米。注意坡度也可以为负。
你知道从比赛起点开始,在每个整数水平千米处道路的高度。为简化起见,我们认为这些点之间的高度是分段线性的。换句话说,在 到 千米之间、 到 千米之间,依此类推,坡度都视为常数。例如在下图中,水平距离 千米处的高度正好为 米。
:::align{center}

:::
Amstel Gold Race 不能直接与环法或环意中的某些山地赛段相比,但你仍然想进行比较。对于每个一日赛,无论是 Amstel Gold Race 还是环法中的某个赛段,你都想知道:在至少达到某个给定坡度的水平区间中,最长区间的长度是多少。实际上,你想对多个坡度都求出答案。
一个水平区间的坡度由其两个端点决定。例如,在上图中,比赛第 千米到第 千米之间的坡度为 ,因为在 千米的水平距离内上升了 米。这个水平区间也是坡度至少为 的最长区间。
输入格式
输入包含:
- 第一行包含两个整数 和 (, ),表示比赛的水平长度(千米)以及你选择的坡度数量。
- 第二行包含 个整数 (),其中 表示从起点水平距离 千米处的路线高度,单位为米。
- 接下来 行,每行包含一个实数 (,且恰好有一位小数),表示你关心的一个坡度。
输出格式
对于每个给定坡度,按照输入顺序输出一行,表示坡度至少为该值的最长水平区间长度,单位为千米。如果不存在合适区间,输出 impossible。
你的答案的绝对误差或相对误差不超过 即可。
8 2
0 0 10 30 60 45 75 65 30
2.0
3.1
3.000000000
impossible
2 2
0 30 30
3.0
2.0
1.000000000
1.500000000
提示
【数据规模与约定】
- 。
- 。
- 。
- 查询坡度 满足 ,且恰好有一位小数。
- 输出长度时,允许绝对误差或相对误差不超过 。