A15275 | Friends and the Restaurant
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
A group of $n$ friends decide to go to a restaurant. Each of the friends plans to order meals for $x_i$ burles and has a total of $y_i$ burles ( $1 \le i \le n$ ).
The friends decide to split their visit to the restaurant into several days. Each day, some group of at least two friends goes to the restaurant. Each of the friends visits the restaurant no more than once (that is, these groups do not intersect). These groups must satisfy the condition that the total budget of each group must be not less than the amount of burles that the friends in the group are going to spend at the restaurant. In other words, the sum of all $x_i$ values in the group must not exceed the sum of $y_i$ values in the group.
What is the maximum number of days friends can visit the restaurant?
For example, let there be $n = 6$ friends for whom $x$ = \[ $8, 3, 9, 2, 4, 5$ \] and $y$ = \[ $5, 3, 1, 4, 5, 10$ \]. Then:
- first and sixth friends can go to the restaurant on the first day. They will spend $8+5=13$ burles at the restaurant, and their total budget is $5+10=15$ burles. Since $15 \ge 13$ , they can actually form a group.
- friends with indices $2, 4, 5$ can form a second group. They will spend $3+2+4=9$ burles at the restaurant, and their total budget will be $3+4+5=12$ burles ( $12 \ge 9$ ).
It can be shown that they will not be able to form more groups so that each group has at least two friends and each group can pay the bill.
So, the maximum number of groups the friends can split into is $2$ . Friends will visit the restaurant for a maximum of two days. Note that the $3$ -rd friend will not visit the restaurant at all.
Output the maximum number of days the friends can visit the restaurant for given $n$ , $x$ and $y$ .
The friends decide to split their visit to the restaurant into several days. Each day, some group of at least two friends goes to the restaurant. Each of the friends visits the restaurant no more than once (that is, these groups do not intersect). These groups must satisfy the condition that the total budget of each group must be not less than the amount of burles that the friends in the group are going to spend at the restaurant. In other words, the sum of all $x_i$ values in the group must not exceed the sum of $y_i$ values in the group.
What is the maximum number of days friends can visit the restaurant?
For example, let there be $n = 6$ friends for whom $x$ = \[ $8, 3, 9, 2, 4, 5$ \] and $y$ = \[ $5, 3, 1, 4, 5, 10$ \]. Then:
- first and sixth friends can go to the restaurant on the first day. They will spend $8+5=13$ burles at the restaurant, and their total budget is $5+10=15$ burles. Since $15 \ge 13$ , they can actually form a group.
- friends with indices $2, 4, 5$ can form a second group. They will spend $3+2+4=9$ burles at the restaurant, and their total budget will be $3+4+5=12$ burles ( $12 \ge 9$ ).
It can be shown that they will not be able to form more groups so that each group has at least two friends and each group can pay the bill.
So, the maximum number of groups the friends can split into is $2$ . Friends will visit the restaurant for a maximum of two days. Note that the $3$ -rd friend will not visit the restaurant at all.
Output the maximum number of days the friends can visit the restaurant for given $n$ , $x$ and $y$ .
输入格式
The first line of the input contains an integer $t$ ( $1 \le t \le 10^4$ ) — the number of test cases in the test.
The descriptions of the test cases follow.
The first line of each test case contains a single integer $n$ ( $2 \le n \le 10^5$ ) — the number of friends.
The second line of each test case contains exactly $n$ integers $x_1, x_2, \dots, x_n$ ( $1 \le x_i \le 10^9$ ). The value of $x_i$ corresponds to the number of burles that the friend numbered $i$ plans to spend at the restaurant.
The third line of each test case contains exactly $n$ integers $y_1, y_2, \dots, y_n$ ( $1 \le y_i \le 10^9$ ). The value $y_i$ corresponds to the number of burles that the friend numbered $i$ has.
It is guaranteed that the sum of $n$ values over all test cases does not exceed $10^5$ .
The descriptions of the test cases follow.
The first line of each test case contains a single integer $n$ ( $2 \le n \le 10^5$ ) — the number of friends.
The second line of each test case contains exactly $n$ integers $x_1, x_2, \dots, x_n$ ( $1 \le x_i \le 10^9$ ). The value of $x_i$ corresponds to the number of burles that the friend numbered $i$ plans to spend at the restaurant.
The third line of each test case contains exactly $n$ integers $y_1, y_2, \dots, y_n$ ( $1 \le y_i \le 10^9$ ). The value $y_i$ corresponds to the number of burles that the friend numbered $i$ has.
It is guaranteed that the sum of $n$ values over all test cases does not exceed $10^5$ .
输出格式
For each test case, print the maximum number of days to visit the restaurant. If friends cannot form even one group to visit the restaurant, print 0.
输入输出样例
输入 #1
6 6 8 3 9 2 4 5 5 3 1 4 5 10 4 1 2 3 4 1 1 2 2 3 2 3 7 1 3 10 6 2 3 6 9 5 7 3 2 7 10 6 10 6 5 4 2 1 8 100 1 1 1 1 1 200 6 1 4 1 2 4 2 1 3 3 2 3 4
输出 #1
2 0 1 3 1 3
The first test case in explained in the problem statement.
In the second test case, friends cannot form at least one group of two or more people.
In the third test case, one way to visit the restaurant in one day is to go in a group of all three friends ( $1+3+10 \ge 2+3+7$ ). Note that they do not have the option of splitting into two groups.
In the second test case, friends cannot form at least one group of two or more people.
In the third test case, one way to visit the restaurant in one day is to go in a group of all three friends ( $1+3+10 \ge 2+3+7$ ). Note that they do not have the option of splitting into two groups.
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted