题目背景
Problem Number: 08
题目描述
有一个间歇泉,冒出了 n 杯水,由于一些原因,每杯水的温度、体积不同。第 i 杯水的温度为 ci,体积为 ai。
现在混合任意两杯水,每混合两杯水都会得到一个新的温度值,求可能得到的第 k 高的温度值(不计热量损失)。
你的答案建议至少保留小数点后 3 位(与标准答案之差在 10−2 以内即视为通过)。
输入格式
第一行一个数 n,k,意义如题述。
接下来 n 行,每行两个数 ai,ci。
输出格式
一行一个实数,表示混合后的水的第 k 高温度。
5 1
1 5
4 2
5 3
2 3
1 4
4.500
提示
样例 1 说明
第 1 和第 5 杯水混合,得到 4.5 的温度值。可以发现,这是可能得到的最高水温。
样例 2
见题目附件中 pour2.in/pour2.ans。
数据规模与约定
本题采用捆绑测试。
- Subtask 1 (10 pts):1≤n≤10。
- Subtask 2 (40 pts):保证 k=1。
- Subtask 3 (50 pts):无特殊限制。
- Subtask 4 (0 pts):Hack 数据。
对于 100% 的数据,有 1≤n≤105,1≤k≤2n×(n−1),1≤ai,ci≤109。
子任务 2/3/4 时限 2 s,子任务 1 时限 1 s。
前置知识
对于两杯体积、温度分别为 (ai,ci),(aj,cj) 的水,混合后温度为:
T=ai+ajaici+ajcj
说明
本题数据采用 SvRan 生成,仅用时 3min。