题号:NC20226
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
JSOI信息学代表队一共有N名候选人,这些候选人从1到N编号。方便起见,JYY的编号是0号。每个候选人都由一位 编号比他小的候选人Ri推荐。如果Ri=0则说明这个候选人是JYY自己看上的。
为了保证团队的和谐,JYY需要保证, 如果招募了候选人i,那么候选人Ri也一定需要在团队中。当然了,JYY自己总是在团队里的。每一个候选人都有 一个战斗值Pi,也有一个招募费用Si。
JYY希望招募K个候选人(JYY自己不算),组成一个性价比最高的团队。 也就是,这K个被JYY选择的候选人的总战斗值与总招募总费用的比值最大。
输入描述:
输入一行包含两个正整数K和N。
接下来N行,其中第i行包含3个整数Si,Pi,Ri表示候选人i的招募费用,战斗值和推荐人编号。
对于100%的数据满足1 ≤ K ≤ N ≤ 2500,0 < "Si,Pi" ≤ 10^4,0 ≤ Ri < i
输出描述:
输出一行一个实数,表示最佳比值。答案保留三位小数。