P1236

[Noi2012]骑行川藏

[Noi2012]骑行川藏

蛋蛋非常热衷于挑战自我。今年暑假,他准备沿川藏线骑自行车从成都前往拉萨。川藏线沿途风景秀丽,但一路上也有许多艰难险阻,路况变化多端。蛋蛋的体力十分有限,因此,每天骑行前设定好目的地并合理分配体力十分重要。

蛋蛋装备了一辆性能很好的自行车,因此可以认为在骑行过程中,他仅需克服风阻做功,不受自行车自身摩擦力以及自行车与地面之间摩擦力的影响。

某一天,蛋蛋计划骑行 NN 段道路,每段道路内的路况均可视为相同。对于第 ii 段道路,给定三个参数 sis_i、kik_i 和 vi′v_i',其中:

  • sis_i 表示该段道路的长度;
  • kik_i 表示该段道路的风阻系数;
  • vi′v_i' 表示该段道路上的风速。vi′>0v_i'>0 表示顺风,vi′<0v_i'<0 表示逆风。

若蛋蛋在该段道路上的某一时刻以速度 vv 骑行,则其受到的风阻大小为

F=ki(v−vi′)2。F=k_i(v-v_i')^2。

因此,若他在长度为 sis_i 的道路上始终保持速度 vv,则消耗的能量,即克服风阻所做的功为

E=ki(v−vi′)2si。E=k_i(v-v_i')^2s_i。

蛋蛋当天开始骑行时的体能值为 EuE_u。请为他设计一种骑行方案,使其在体能有限的条件下,以最短时间到达目的地,并求出最短时间 TT。

可以证明,必然存在一种最优的体力分配方案,使得蛋蛋在每段道路上都采用匀速骑行。

输入格式

第一行包含一个正整数 NN 和一个实数 EuE_u,分别表示路段数量和蛋蛋的体能值。

接下来 NN 行描述各段道路。每行包含三个实数 sis_i、kik_i 和 vi′v_i',分别表示第 ii 段道路的长度、风阻系数和风速。

输出格式

输出一个有限实数 TT,表示蛋蛋到达目的地所需的最短时间,要求至少保留小数点后 66 位。

输出不能包含 NaN、无穷大或其他非数值内容。当输出结果与标准答案的绝对误差不超过 10−610^{-6} 时,视为答案正确。

样例输入

3 10000
10000 10 5
20000 15 8
50000 5 6

样例输出

12531.34496464

数据范围

  • 对于 10%10\% 的数据,N=1N=1;
  • 对于 40%40\% 的数据,N≤2N\le 2;
  • 对于 60%60\% 的数据,N≤100N\le 100;
  • 对于 80%80\% 的数据,N≤103N\le 10^3;
  • 对于所有数据,N≤104N\le 10^4;
  • 对于所有数据,0≤Eu≤1080\le E_u\le 10^8;
  • 对于所有数据,0≤si≤1050\le s_i\le 10^5;
  • 对于所有数据,0<ki≤150<k_i\le 15;
  • 对于所有数据,−100<vi′<100-100<v_i'<100;
  • 所有输入实数均保留至多 66 位小数;
  • 数据保证最终答案不超过 10510^5。

来源与许可

本题为 NOI 2012 试题「骑行川藏」,题面与测试数据整理自 BZOJ。

样例 1

输入

3 10000
10000 10 5
20000 15 8
50000 5 6

输出

12531.34496464