CF1995B2.Bouquet (Hard Version)

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

这是该问题的困难版本。唯一的区别在于,本版本中不再列出每朵花的花瓣数,而是为所有种类的花设置了花瓣数和该种花的数量。

有一个女孩正在为她的生日做准备,想要购买最美丽的花束。商店里共有 nn 种不同类型的花,每种花都由花瓣数和该种花的数量来描述。拥有 kk 片花瓣的花售价为 kk 个硬币。女孩决定,她用来装饰蛋糕的任意两朵花的花瓣数之差不能超过 11。同时,女孩希望用尽可能多的花瓣来组装花束。不幸的是,她只有 mm 个硬币,不能花得更多。请问她最多能用多少花瓣来组装花束?

输入格式

每个测试包含若干组测试用例。第一行包含一个整数 tt(1≤t≤10 0001 \le t \le 10\,000)——测试用例的数量。接下来是每组测试用例的描述。

每组测试用例的第一行包含两个整数 nn 和 mm(1≤n≤2⋅105,1≤m≤10181 \le n \le 2 \cdot 10^5, 1 \le m \le 10^{18})——商店中花的种类数和女孩拥有的硬币数。每组测试用例的第二行包含 nn 个不同的整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1091 \le a_i \le 10^9),其中 aia_i 表示商店中第 ii 种花的花瓣数(对于不同的 i≠ji \neq j,有 ai≠aja_i \neq a_j)。第三行包含 nn 个整数 c1,c2,…,cnc_1, c_2, \ldots, c_n(1≤ci≤1091 \le c_i \le 10^9),其中 cic_i 表示商店中第 ii 种花的数量。

所有测试用例中 nn 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每组测试用例,输出一个整数,表示在满足所有条件的情况下,女孩最多能用多少花瓣来组装花束。

输入输出样例

  • 输入#1

    7
    3 10
    1 2 3
    2 2 1
    3 1033
    206 207 1000
    3 4 1
    6 20
    4 2 7 5 6 1
    1 2 1 3 1 7
    8 100000
    239 30 610 122 24 40 8 2
    12 13123 112 1456 124 100 123 10982
    6 13
    2 4 11 1 3 5
    2 2 1 2 2 1
    8 10330
    206 210 200 201 198 199 222 1000
    9 10 11 12 13 14 15 16
    2 10000000000
    11 12
    87312315 753297050

    输出#1

    7
    1033
    19
    99990
    13
    10000
    9999999999

说明/提示

在第一个测试用例中,一些合法的花束有 (1,1,2,2),(2,2,3),(1,1),(2,2)(1, 1, 2, 2), (2, 2, 3), (1, 1), (2, 2)。所有合法花束中,且总花瓣数不超过 1010 的最大值是 77,对应花束为 (2,2,3)(2, 2, 3)。在第二个测试用例中,你可以用 (206,206,207,207,207)(206, 206, 207, 207, 207) 组装一个合法花束,总花瓣数为 10331033,这是女孩能买到的最大花瓣数。在第三个测试用例中,你可以用 (5,5,5,4)(5, 5, 5, 4) 组装一个合法花束,总花瓣数为 1919。可以看出,没有合法花束能达到 2020 片花瓣。

由 ChatGPT 4.1 翻译

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

首页