该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
    
                    题目描述
巡造了一个很牛的飞船,巡为了测试她的飞船,造了一条无限远的从起点出发的射线作为跑道。在跑道上有 n 个加油站,第 i 个在距离起点 pi 的位置,巡可以在这里花费 ti 的时间加编号为 xi 的燃油,同一个加油站的油不能加两次,保证 1≤xi≤4 且 xi 为整数。
巡的飞船牛在两个点:
- 这个飞船油量消耗极低,在本题中可以忽略不计。也就是,我们不考虑油消耗殆尽的情况。
 
- 如果给飞船加编号为 x 的燃油,飞船的速度会从 v 提升为 v×x。需要注意的是,燃油的效果能叠加。
 
现在,巡给出了 q 次询问。每次巡会将终点设在跑道上距离起点 yi 的位置,从起点出发,将飞船速度设定为 1 单位每时间,途径的每个加油站可以自由选择是否加油。你需要告诉巡每次至少需要多少时间才能到达终点(即 yi)。
输入格式
第一行,两个正整数 n,q,表示加油站个数和询问个数。
接下来 n 行,每行三个正整数 pi,ti,xi,分别表示第 i 个加油站距离起点的距离、加油需要的时间和燃油的编号。加油站按 pi 严格升序给出,即 pi<pi+1。保证 1≤xi≤4。
接下来一行,q 个正整数 y1,…,yq,表示询问。
输出格式
q 行,每行一个非负实数,表示答案。
本题使用自定义校验器检验你的答案是否正确,你只需要保证你的答案与标准答案相对或绝对误差不超过 10−6 即可。即如果对每个询问,假设你的答案为 x,而标准答案为 y,都有 $\frac{\lvert x-y\rvert}{\max(1,\lvert y\rvert)}\leq 10^{-6}$,则你的答案被认为是正确的。
样例 #1
样例输入 #1
4 4
1 1 1
3 1 2
8 5 2
10 100 3
1 4 10 1000
样例输出 #1
1
4
7.5
194.5
提示
【样例解释 #1】
- 对询问 y1=1,不加油,需要时间为 1。
 
- 对询问 y2=4,不加油,需要时间为 4。
 
- 对询问 y3=10,在位于起点 3 单位距离的加油站 2 加 2 号燃油,速度提升为 2,需要时间为 3+1+210−3=7.5。
 
【样例 #2】
见附件中的 ship/ship2.in 与 ship/ship2.ans。
该组样例满足测试点 1∼3 的约束条件。
【样例 #3】
见附件中的 ship/ship3.in 与 ship/ship3.ans。
该组样例满足测试点 5∼7 的约束条件。
【样例 #4】
见附件中的 ship/ship4.in 与 ship/ship4.ans。
该组样例满足测试点 18∼20 的约束条件。
【数据范围】
对于所有测试数据,保证:1≤n≤105,1≤q≤105,1≤p1<p2<⋯<pn≤109,1≤ti≤109,1≤xi≤4,1≤yi≤109。
| 测试点编号 | 
n≤ | 
q≤ | 
xi∈ | 
pi,yi≤ | 
| 1∼3 | 
10 | 
{1,2,3,4} | 
109 | 
| 4 | 
105 | 
{1} | 
| 5∼7 | 
100 | 
{1,2,3,4} | 
1000 | 
| 8∼9 | 
105 | 
105 | 
{1,2} | 
109 | 
| 10∼13 | 
{1,2,4} | 
| 14∼17 | 
10 | 
{1,2,3,4} | 
| 18∼20 | 
105 |