AT_dwango2015_prelims_4 タクシー

题目描述

在某个星球上进行了一场编程竞赛的预选赛,名为「ドワンゴからの挑戦状」,预选赛的合格者将被邀请参加正赛。 这个星球上有一条长度为 $ L $ 的环形道路,环形道路上分布着 $ N $ 个城市。这些城市按顺时针方向从 $ 1 $ 到 $ N $ 编号,并且从城市 $ 1 $ 开始顺时针排列。 正赛将在一个或多个城市举行,每个会场都需要进行现场直播。 对于每个城市和会场,我们已经知道该城市的正赛选手有多少人居住,以及会场可以容纳的正赛选手人数。 所有会场的参赛者总数等于所有城市中需要参赛者总数的总和。 有些城市的居住的参赛者人数与需要达到的参赛者人数不一致,这时需要通过出租车在城市间转移参赛者。 出租车在环形道路上行驶,每转移一名参赛者的费用与他们的移动距离成正比。 请计算出使总转移成本最小的方案。

输入格式

输入通过标准输入给出,格式如下: > $ N $ $ L $ $ a_1 $ $ b_1 $ $ c_1 $ $ a_2 $ $ b_2 $ $ c_2 $ : $ a_N $ $ b_N $ $ c_N $ - 第一行包含两个整数 $ N\ (2 \leq N \leq 100,000) $ 和 $ L\ (N \leq L \leq 10,000,000) $,分别代表城市数量和环形道路的长度。 - 接下来的 $ N $ 行,每行包括三个整数 $ a_i\ (0 \leq a_i \leq L - 1) $, $ b_i\ (0 \leq b_i \leq 100,000) $, $ c_i\ (0 \leq c_i \leq 100,000) $,分别表示第 $ i $ 个城市的相对位置,出发参赛者数量,以及该城市如果有会场可以接待的参赛者数量。 - $ a_1 = 0 $ 表示城市 $ 1 $ 的起始位置,$ a_i > a_{i-1} $ 对于所有 $ i\ (2 \leq i \leq N) $ 都成立。 - $ b_1 + \dots + b_N = c_1 + \dots + c_N $。 - $ b_1 + \dots + b_N \geq 1 $。

输出格式

输出一行,表示可能的最小运输成本。确保输出行末有换行符。

说明/提示

### 部分评分 该题目有部分评分。根据不同的数据集限制,可以得到不同的分数: - 约束 $ N \leq 5,000 $ 且 $ b_1 + \dots + b_N \leq 5,000 $ 的数据集 1,正确解答可得到 15 分。 - 约束 $ N \leq 5,000 $ 的数据集 2,正确解答可得到额外 30 分。 - 无额外限制的数据集 3,正确解答可得到额外 55 分,总计 100 分。 ### 样例解释 1 考虑以下移动方案: - 城市 $ 3 $ 的一名参赛者逆时针移动到城市 $ 1 $。移动成本为 $ 4 \times 1 = 4 $。 - 城市 $ 6 $ 的一名参赛者逆时针移动到城市 $ 4 $。移动成本为 $ 2 \times 1 = 2 $。 - 城市 $ 7 $ 的两名参赛者顺时针移动到城市 $ 1 $。移动成本为 $ 3 \times 2 = 6 $。 最终,所有有会场的城市,其参赛者人数与容纳能力一致,并且所有参赛者都能到达某个会场。总移动成本为 $ 4 + 2 + 6 = 12 $,这就是最小值。 **本翻译由 AI 自动生成**