P0698

[Apio2012]dispatching

[Apio2012]dispatching

在一个忍者帮派中,一些忍者会被选中派遣给顾客,并根据自己的工作获得报酬。帮派中有一名忍者被称为 Master。除 Master 外,每名忍者都有且仅有一名直接上级。

为了保密并增强忍者们的领导力,所有与工作相关的指令都必须由上级发送给自己的直接下属,不能通过其他方式传递。现在,你需要招募一批忍者并将他们派遣给顾客。

对于每一名被派遣的忍者,你需要支付一定的薪水,并且支付的薪水总额不能超过预算。为了发送指令,你还需要选择一名忍者作为管理者,要求该管理者能够向所有被派遣的忍者发送指令。在发送指令时,任何忍者,无论是否被派遣,都可以作为消息的传递者。管理者可以被派遣,也可以不被派遣;如果管理者没有被派遣,则不需要支付其薪水。

你的目标是在预算内使顾客的满意度最大。顾客的满意度定义为被派遣的忍者总数乘以管理者的领导力水平,其中每名忍者都有一个确定的领导力水平。

给定每名忍者 ii 的上级 BiB_i、薪水 CiC_i、领导力 LiL_i,以及支付给所有忍者的薪水总预算 MM,请计算在满足条件的情况下顾客满意度的最大值。

输入格式

从标准输入读入数据。

第一行包含两个整数 NN 和 MM,其中 NN 表示忍者的个数,MM 表示薪水总预算。

接下来 NN 行描述每名忍者的上级、薪水以及领导力。第 ii 行包含三个整数 BiB_i、CiC_i 和 LiL_i,分别表示第 ii 个忍者的上级编号、薪水以及领导力。

Master 满足 Bi=0B_i=0,并且每名忍者的上级编号都小于自己的编号,即 Bi<iB_i<i。

输出格式

输出一个整数,表示在预算内能够获得的顾客满意度最大值。

样例输入

5  4
0  3 3
1  3 5
2  2 2
1  2 4
2  3 1

样例输出

6

样例解释

选择编号为 11 的忍者作为管理者,并派遣编号为 33 和 44 的忍者。支付的薪水总和为 44,没有超过预算。派遣了 22 名忍者,管理者的领导力为 33,因此顾客满意度为 2×3=62\times 3=6,这是能够获得的最大满意度。

数据范围

  • 1≤N≤1051\le N\le 10^5,忍者的个数;
  • 1≤M≤1091\le M\le 10^9,薪水总预算;
  • 0≤Bi<i0\le B_i<i,忍者 ii 的上级编号;
  • 1≤Ci≤M1\le C_i\le M,忍者 ii 的薪水;
  • 1≤Li≤1091\le L_i\le 10^9,忍者 ii 的领导力水平。

来源与许可

本题为 APIO 2012 试题「Dispatching」,题面与测试数据整理自 BZOJ 2809。

样例 1

输入

5  4
0  3 3
1  3 5
2  2 2
1  2 4
2  3 1

输出

6