[JSOI2016]最佳团体
题号: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

输出描述:

输出一行一个实数,表示最佳比值。答案保留三位小数。
示例1

输入

复制
1 2
1000 1 0
1 1000 1

输出

复制
0.001