CF954E Water Taps

题目描述

有 $n$ 个水龙头同时向同一个容器注水。第 $i$ 个水龙头每秒可以调节流量为 $0$ 到 $a_i$ 毫升(流量可以为实数)。第 $i$ 个水龙头流出的水的温度为 $t_i$。 如果对于每个 $i$,你将第 $i$ 个水龙头的流量设置为每秒 $x_i$ 毫升,那么最终混合后的水温为 $$ \frac{\sum_{i=1}^n x_i t_i}{\sum_{i=1}^n x_i} $$ (如果 $\sum_{i=1}^n x_i = 0$,为避免除以零,规定此时混合水温为 $0$)。 你需要调节所有水龙头的流量,使得最终混合水温恰好为 $T$。在满足混合水温为 $T$ 的前提下,求每秒最多能获得多少毫升的水。

输入格式

第一行包含两个整数 $n$ 和 $T$($1 \leq n \leq 200000$,$1 \leq T \leq 10^6$),分别表示水龙头的数量和期望的混合水温。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq 10^6$),其中 $a_i$ 表示第 $i$ 个水龙头每秒最大流量。 第三行包含 $n$ 个整数 $t_1, t_2, \ldots, t_n$($1 \leq t_i \leq 10^6$),其中 $t_i$ 表示第 $i$ 个水龙头流出的水的温度。

输出格式

输出在混合水温恰好为 $T$ 的前提下,每秒最多能获得的水量。如果无法获得温度为 $T$ 的水,则输出 $0$。 你的答案如果与标准答案的绝对误差或相对误差不超过 $10^{-6}$,则视为正确。

说明/提示

由 ChatGPT 4.1 翻译