CF1637E Best Pair
题目描述
给定一个长度为 $n$ 的数组 $a$。设 $cnt_x$ 表示数组中等于 $x$ 的元素个数。定义 $f(x, y) = (cnt_x + cnt_y) \cdot (x + y)$。
同时给定 $m$ 个坏对 $(x_i, y_i)$。注意,如果 $(x, y)$ 是坏对,则 $(y, x)$ 也是坏对。
你的任务是,在所有满足 $u \neq v$,且该对不是坏对,并且 $u$ 和 $v$ 都在数组 $a$ 中出现过的数对 $(u, v)$ 中,求 $f(u, v)$ 的最大值。保证一定存在这样的数对。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10\,000$),表示测试用例的数量。
每个测试用例的第一行包含两个整数 $n$ 和 $m$($2 \le n \le 3 \cdot 10^5$,$0 \le m \le 3 \cdot 10^5$),分别表示数组长度和坏对数量。
每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^9$),表示数组的元素。
接下来 $m$ 行,每行包含两个整数 $x_i$ 和 $y_i$($1 \le x_i < y_i \le 10^9$),表示一个坏对。保证输入中没有重复的坏对。保证 $cnt_{x_i} > 0$ 且 $cnt_{y_i} > 0$。
保证每个测试用例都存在一组 $u \ne v$,且不是坏对,且 $u$ 和 $v$ 都在 $a$ 中出现过。
保证所有测试用例中 $n$ 的总和与 $m$ 的总和不超过 $3 \cdot 10^5$。
输出格式
对于每个测试用例,输出一个整数,表示该测试用例的答案。
说明/提示
在第一个测试用例中,$3$、$6$、$7$ 在数组中出现。
- $f(3, 6) = (cnt_3 + cnt_6) \cdot (3 + 6) = (3 + 2) \cdot (3 + 6) = 45$。但 $(3, 6)$ 是坏对,所以忽略。
- $f(3, 7) = (cnt_3 + cnt_7) \cdot (3 + 7) = (3 + 1) \cdot (3 + 7) = 40$。
- $f(6, 7) = (cnt_6 + cnt_7) \cdot (6 + 7) = (2 + 1) \cdot (6 + 7) = 39$。
所以答案为 $\max(40, 39) = 40$。
由 ChatGPT 4.1 翻译