CF954E.Water Taps

普及+/提高

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Consider a system of n water taps all pouring water into the same container. The i-th water tap can be set to deliver any amount of water from 0 to a__i ml per second (this amount may be a real number). The water delivered by i-th tap has temperature t__i.

If for every you set i-th tap to deliver exactly x__i ml of water per second, then the resulting temperature of water will be (if , then to avoid division by zero we state that the resulting water temperature is 0).

You have to set all the water taps in such a way that the resulting temperature is exactly T. What is the maximum amount of water you may get per second if its temperature has to be T?

考虑一个由 nn 个水龙头组成的系统,所有水龙头均向同一个容器中注水。第 ii 个水龙头的出水量可设定为每秒 00 至 aia_i 毫升之间的任意实数值。第 ii 个水龙头流出的水温度为 tit_i。

若对每个 ii(1≤i≤n1 \le i \le n),将第 ii 个水龙头设定为恰好每秒输出 xix_i 毫升水,则混合后水的温度为

∑i=1nxiti∑i=1nxi\frac{\sum_{i=1}^{n} x_i t_i}{\sum_{i=1}^{n} x_i}

(若 ∑i=1nxi=0\sum_{i=1}^{n} x_i = 0,为避免除零,规定此时混合水温度为 00)。

你需要恰当地设定所有水龙头的出水量,使得最终水温恰好为 TT。在满足最终水温为 TT 的前提下,每秒最多能获得多少毫升的水?

输入格式

The first line contains two integers n and T (1 ≤ n ≤ 200000, 1 ≤ T ≤ 106) — the number of water taps and the desired temperature of water, respectively.

The second line contains n integers _a_1, _a_2, ..., a__n (1 ≤ a__i ≤ 106) where a__i is the maximum amount of water i-th tap can deliver per second.

The third line contains n integers _t_1, _t_2, ..., t__n (1 ≤ t__i ≤ 106) — the temperature of water each tap delivers.

第一行包含两个整数 nn 和 TT(1≤n≤2000001 \leq n \leq 200000,1≤T≤1061 \leq T \leq 10^6)—— 分别表示水龙头的数量和目标水温。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n(1≤ai≤1061 \leq a_i \leq 10^6),其中 aia_i 表示第 ii 个水龙头每秒能提供的最大水量。

第三行包含 nn 个整数 t1,t2,…,tnt_1, t_2, \dots, t_n(1≤ti≤1061 \leq t_i \leq 10^6)—— 表示每个水龙头所提供的水的温度。

输出格式

Print the maximum possible amount of water with temperature exactly T you can get per second (if it is impossible to obtain water with such temperature, then the answer is considered to be 0).

Your answer is considered correct if its absolute or relative error doesn't exceed 10 - 6.

打印每秒可获得的温度恰好为 TT 的水的最大可能体积(如果无法获得该温度的水,则答案视为 0)。

若你的答案的绝对或相对误差不超过 10−610^{-6},则视为正确。

输入输出样例

  • 输入#1

    2 100
    3 10
    50 150

    输出#1

    6.000000000000000
  • 输入#2

    3 9
    5 5 30
    6 6 10

    输出#2

    40.000000000000000
  • 输入#3

    2 12
    1 3
    10 15

    输出#3

    1.666666666666667

输入解题思路,AI测评打分。不知道怎么写?

首页