当前位置:网站首页>C. Keshi Is Throwing a Party- Codeforces Global Round 17
C. Keshi Is Throwing a Party- Codeforces Global Round 17
2022-08-03 21:03:00 【秦小咩】
C. Keshi Is Throwing a Party
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Keshi is throwing a party and he wants everybody in the party to be happy.
He has nn friends. His ii-th friend has ii dollars.
If you invite the ii-th friend to the party, he will be happy only if at most aiai people in the party are strictly richer than him and at most bibi people are strictly poorer than him.
Keshi wants to invite as many people as possible. Find the maximum number of people he can invite to the party so that every invited person would be happy.
Input
The first line contains a single integer tt (1≤t≤104)(1≤t≤104) — the number of test cases. The description of the test cases follows.
The first line of each test case contains a single integer nn (1≤n≤2⋅105)(1≤n≤2⋅105) — the number of Keshi's friends.
The ii-th of the following nn lines contains two integers aiai and bibi (0≤ai,bi<n)(0≤ai,bi<n).
It is guaranteed that the sum of nn over all test cases doesn't exceed 2⋅1052⋅105.
Output
For each test case print the maximum number of people Keshi can invite.
Example
input
Copy
3 3 1 2 2 1 1 1 2 0 0 0 1 2 1 0 0 1
output
Copy
2 1 2
Note
In the first test case, he invites the first and the second person. If he invites all of them, the third person won't be happy because there will be more than 11 person poorer than him.
=========================================================================
二分和贪心,二分枚举选的个数,判定函数里面运用贪心思想,能选就选。选一个的话,如果剩下的k-cnt-1个少于a[i],并且已经被选的 cnt<=b[i],那么就可以选该物品。
#include <iostream>
# include<algorithm>
# include<cstring>
using namespace std;
typedef long long int ll;
ll a[200000+10],b[200000+10];
int n;
bool check(ll mid)
{
int now=0;
for(int i=1;i<=n;i++)
{
if(mid-now-1<=a[i]&&now<=b[i])
now++;
if(now>=mid)
return 1;
}
return 0;
}
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i]>>b[i];
}
int left=0,right=n;
while(left<=right)
{
int mid=(left+right)>>1;
if(check(mid))
left=mid+1;
else
right=mid-1;
}
cout<<right<<endl;
}
return 0;
}
边栏推荐
猜你喜欢

《富爸爸,穷爸爸》思维导图和学习笔记

Often forget HiFlow 】 【 check-in?Use tencent cloud scenario connector to remind you every day.

Five Steps to Detect and Control Shadow IT

LitJson报错记录

Why BI software can't handle correlation analysis

NAACL 2022 | 具有元重加权的鲁棒自增强命名实体识别技术

华为设备配置VRRP与BFD联动实现快速切换

How can a cloud server safely use local AD/LDAP?

15 years experience in software architect summary: in the field of ML, tread beginners, five hole

卷起来!阿里高工携 18 位高级架构师耗时 57 天整合的 1658 页面试总结
随机推荐
leetcode 268. 丢失的数字(异或!!)
PyCharm函数自动添加注释无参数问题
不专业面试官的经验总结
华为设备配置VRRP与BFD联动实现快速切换
9月1日起我国给予多哥等16国98%税目产品零关税待遇
Cesium 修改鼠标样式
字节跳动软件测试岗,前两面过了,第三面HR天坑,结局透心凉...
DDD 中的几个困难问题
在树莓派上搭建属于自己的网页(3)
如何使用 Jmeter获取登录token并设置为全局变量?
2022年1~7月语音合成(TTS)和语音识别(ASR)论文月报
6. XML
leetcode 072. 求平方根
XSS线上靶场---prompt
Leetcode 125. Verify palindrome string
Leetcode sword refers to Offer 15. 1 in the binary number
面试官:为什么 0.1 + 0.2 == 0.300000004?
leetcode 2119. Numbers reversed twice
NAACL 2022 | 具有元重加权的鲁棒自增强命名实体识别技术
详解虚拟机!京东大佬出品 HotSpot VM 源码剖析笔记(附完整源码)