#dwango2015prelims4. [dwango2015_prelims_4]タクシー

[dwango2015_prelims_4]タクシー

问题描述

在某颗星球上,正在进行一场名为“来自DWANGO的挑战状”的编程竞赛预选赛,预选赛的通过者将被邀请前往决赛场地。

这颗星球上有一条长度为LL的环形线路,上面有NN个城市。每个城市都有一个从1到N的编号,以11号城市为基准,按顺时针的方式编号。

决赛可以在一个或多个城市进行,并决定每个比赛场地进行现场直播。

每个城市和每个比赛场地都确定了参与决赛的居民数量和进入比赛场地的选手人数。

进入比赛场地的总选手人数与参与决赛的总选手人数完全相等。

有些城市的居住选手人数与进入比赛场地的选手人数可能不相等,这种情况下需要通过出租车将决赛选手从一个城市移动到另一个城市。

出租车可以沿着环形线路移动,每个决赛选手的移动距离将产生相应的移动成本。

请编写一个程序,找出所有可能的移动成本的最小值。


输入

输入数据以以下格式从标准输入中给出。

NN LL a1a_1 b1b_1 c1c_1 a2a_2 b2b_2 c2c_2 : aNa_N bNb_N cNc_N

  • 第一行为城市数量N(2N100,000)N (2 ≤ N ≤ 100,000)和环形线路长度L(NL10,000,000)L (N ≤ L ≤ 10,000,000),以空格分隔。
  • 第二行到第NN行给出与每个城市相关的信息。其中第i(1iN)i (1 ≤ i ≤ N)行包含三个整数ai(0aiL1)a_i (0 ≤ a_i ≤ L - 1)bi(0bi100,000)b_i (0 ≤ b_i ≤ 100,000)ci(0ci100,000)c_i (0 ≤ c_i ≤ 100,000),以空格分隔。这表示城市ii位于沿着环形线路,从基准城市1开始逆时针前进aia_i的位置,城市iibib_i名参赛选手,如果ci=0c_i = 0,则城市ii没有比赛场地,如果ci>0c_i > 0,则城市ii邀请cic_i名选手参加决赛。
  • a1=0a_1 = 0,且对于所有整数i(2iN)i (2 ≤ i ≤ N),有ai>ai1a_i > a_{i-1}成立。
  • b1+...+bN=c1+...+cNb_1 + ... + b_N = c_1 + ... + c_N
  • b1+...+bN1b_1 + ... + b_N ≥ 1

部分评分

此问题有部分得分。

  • 如果满足N5,000N ≤ 5,000b1+...+bN5,000b_1 + ... + b_N ≤ 5,000的数据集11全部正确,则得到1515分。
  • 如果满足N5,000N ≤ 5,000的数据集22全部正确,则额外获得3030分。
  • 如果满足没有额外约束的数据集33全部正确,则额外获得5555分,总分为100100分。

输出

输出移动成本的最小值,输出占一行。末尾加上换行符。


输入示例1


7 30
0 3 6
1 2 2
4 5 4
19 0 1
20 4 4
21 1 0
27 3 1

输出示例1


12

考虑以下移动:

  • 城市3的1名决赛选手通过出租车逆时针移动到城市1。移动成本为4×1=44 × 1 = 4
  • 城市6的1名决赛选手通过出租车逆时针移动到城市4。移动成本为2×1=22 × 1 = 2
  • 城市7的2名决赛选手通过出租车顺时针移动到城市1。移动成本为2名选手共3×2=63 × 2 = 6

由于这些移动产生的结果是无论移动后的城市是否存在比赛场地,该城市的参与决赛选手数量与进入比赛场地的选手数量相等,并且所有决赛选手都能进入比赛场地。

移动成本的总值为4+2+6=124 + 2 + 6 = 12,这个值为最小值。


输入示例2


6 25
0 10 1
3 0 1
9 0 2
12 0 3
13 0 2
21 0 1

输出示例2


85