84分,WA两个点,求助。
查看原帖
84分,WA两个点,求助。
540822
HotDogSeller楼主2022/6/3 19:11

同标题,是不是有什么问题?

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<map>
#include<vector>
#include<memory.h>
#include<set> 
#include<cmath>

#define int long long

using namespace std;

struct house{
	int ind;
	int tim;
}h[1000005];

int n,m,t,ans=0,res=0;
priority_queue<int> pq;

bool cmp(house a,house b){
	return a.ind<=b.ind;
}

signed main(){
	
	cin>>n>>m;
	
	for(int i=1;i<=n;i++){
		scanf("%lld%lld",&h[i].ind,&h[i].tim);
	}
	
	sort(h+1,h+n+1,cmp);
	h[0].ind=0;
	
	int tim=0;
	for(int i=1;i<=n;i++){
		
		tim+=h[i].ind-h[i-1].ind;
		pq.push(h[i].tim);
		ans++;
		tim+=h[i].tim;
		
		while(tim>m&&!pq.empty()){
			tim-=pq.top();
			pq.pop();
			ans--;
		}
		
		if(tim>m){
			break;
		}
		
		res=max(res,ans);
		
	}
	
	cout<<res<<endl;
	
	return 0;
}
2022/6/3 19:11
加载中...