CF1729D Friends and the Restaurant
题目描述
有 $n$ 个朋友决定一起去餐厅。每个朋友计划花费 $x_i$ 布尔,并且拥有 $y_i$ 布尔($1 \le i \le n$)。
这些朋友决定将去餐厅的行程分成若干天。每一天,至少有两位朋友组成一组去餐厅。每位朋友最多只去一次餐厅(即这些组互不相交)。每组必须满足:该组所有人的总预算不少于他们计划在餐厅花费的总金额。也就是说,组内所有 $x_i$ 的和不能超过组内所有 $y_i$ 的和。
问这些朋友最多可以分成多少天去餐厅?
例如,设 $n=6$,$x=[8,3,9,2,4,5]$,$y=[5,3,1,4,5,10]$。那么:
- 第 1 和第 6 个朋友可以在第一天一起去餐厅。他们计划花费 $8+5=13$ 布尔,总预算为 $5+10=15$ 布尔。由于 $15 \ge 13$,他们可以组成一组。
- 第 2、4、5 个朋友可以组成第二组。他们计划花费 $3+2+4=9$ 布尔,总预算为 $3+4+5=12$ 布尔($12 \ge 9$)。
可以证明,无法再组成更多满足条件的组(每组至少两人且能支付账单)。
因此,朋友们最多可以分成 $2$ 组,也就是最多可以去餐厅 $2$ 天。注意,第 3 个朋友不会去餐厅。
对于给定的 $n$、$x$ 和 $y$,输出朋友们最多可以去餐厅的天数。
输入格式
输入的第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 $n$($2 \le n \le 10^5$),表示朋友的数量。
第二行包含 $n$ 个整数 $x_1, x_2, \dots, x_n$($1 \le x_i \le 10^9$),其中 $x_i$ 表示第 $i$ 个朋友计划在餐厅花费的布尔数。
第三行包含 $n$ 个整数 $y_1, y_2, \dots, y_n$($1 \le y_i \le 10^9$),其中 $y_i$ 表示第 $i$ 个朋友拥有的布尔数。
保证所有测试用例中 $n$ 的总和不超过 $10^5$。
输出格式
对于每个测试用例,输出朋友们最多可以去餐厅的天数。如果无法组成至少一组去餐厅,输出 $0$。
说明/提示
第一个测试用例已在题目描述中解释。
第二个测试用例中,朋友们无法组成至少一组两人及以上的组。
第三个测试用例中,一种方案是三位朋友一起去餐厅($1+3+10 \ge 2+3+7$)。注意,他们无法分成两组。
由 ChatGPT 4.1 翻译