P5391: 未了(endless)
传统题
1.000s
时间限制
256MB
内存限制
6 提交
5 解决
【题目描述】
由于触犯天神,Sisyphus 将要接受惩罚。
宙斯命 Sisyphus 推一块巨石上长度为 L的山坡。Sisyphus 匀速向上推的速度为每年 v 的长度(由于是匀速,故经过1/2年将能向上推 1/2的长度)。然而,宙斯并不希望 Sisyphus 太快到达山顶。宙斯可以施展 n 个魔法,若宙斯施展第 i个魔法(1≤i≤n),则当 Sisyphus 第一次到达位置 ai时,他将会同巨石一起滚落下山底,并从头推起。(滚落的时间忽略不计,即可看作第一次到达位置 ai后 Sisyphus 立即从山底重新出发)
例如宙斯施用了 ai =3 与 ai=5 的两个魔法。Sisyphus 的速度 v = 1,山坡的长度 L = 6,则他推石上山过程如下:
① 用 3 年走到位置 3。
② 受 ai=3 的魔法影响,回到了山底出发。
③ 再用 3 年走到位置 3,然而因为是第二次到达,ai=3 的魔法不起作用。
④ 用 2 年走到位置 5。
⑤ 受 ai=5 的魔法影响,回到了山底出发。
⑥ 用 6 年从山底走到了山顶。花费的总时间为 14 年。
现在,宙斯有 q 个询问。对于第 i 个询问 ti,宙斯想知道,他最少需要施展多少个魔法才能使 Sisyphus 到达山顶所用的年数大于 ti 。
【输入】
第一行三个整数 n, L,v 分别表示魔法的种类数,山坡的长度,Sisyphus 的速度。
第二行 n 个整数。第 i 个整数 ai表示第 i 个魔法作用的位置。(1≤i≤n)
第三行一个整数 q 表示宙斯的询问个数。
接下来 q 行每行一个整数,第 i 行的整数 ti表示宙斯的第 ii 个询问。(1≤i≤q)
【输出】
输出 q 行,每行恰好一个整数,第 i 行的整数对应第 i 个询问的答案。(1≤i≤q)
如果宙斯无论如何都不能使 Sisyphus 使用的年数大于 ti,请输出 -1。
【样例输入】复制
3 6 3
3 5 1
4
1
3
4
5
【提示】