玄关!奇葩set求条
查看原帖
玄关!奇葩set求条
1191010
liuzilin114514楼主2024/11/19 21:37

rt,

#include<bits/stdc++.h>
using namespace std;
set<long long> s;
struct ppp{
	int t;
	long long x;
}a[100005];
int n;
long long m,ans=0,cnt=0,p;
bool cmp(ppp aa,ppp bb){
	return aa.x<bb.x;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i].x;
		cin>>a[i].t;
	}	
	set<long long>::iterator it;
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++){
		if(m-a[i].x+a[i-1].x-a[i].t>=0){
			m-=(a[i].x-a[i-1].x+a[i].t);
			cnt++;
			s.insert((long long)a[i].x-a[i-1].x+a[i].t);
		}
		else{
			it=s.end()--;
//			cout<<*it;
			if(a[i].x-a[i-1].x+a[i].t<*it){
				m+=(*it);
				s.erase(it);
				m-=(a[i].x-a[i-1].x+a[i].t);
				s.insert((long long)a[i].x-a[i-1].x+a[i].t);
			}
		}
		ans=max(ans,cnt);
	} 
	cout<<ans;
	return 0;
}
2024/11/19 21:37
加载中...