30WA求助
查看原帖
30WA求助
722468
MrJC_Pandingding楼主2023/4/30 07:59
#include<bits/stdc++.h>
using namespace std;
struct node
{
	long long a,b;
	friend bool operator<(const node &x,const node &y)
	{
		return x.b<y.b||x.b==y.b&&x.a<y.a;
	}
	friend bool operator>(const node &x,const node &y)
	{
		return y<x;
	}
};
int cnt,i,n;
long long t;
node nd[150010];
priority_queue<long long,vector<long long>,greater<long long> >pq;
int main()
{
	scanf("%d",&n);
	for(i=1;i<=n;++i)
	{
		scanf("%lld%lld",&nd[i].a,&nd[i].b);
		if(nd[i].a>nd[i].b)
		{
			i--;
			n--;
		}
	}
	sort(nd+1,nd+n+1);
	for(i=1;i<=n;++i)
	{
		if(t+nd[i].a<=nd[i].b)
		{
			t+=nd[i].a;
			cnt++;
			pq.push(nd[i].a);
		}
		else 
		{
			if(pq.size()&&nd[i].a<pq.top())
			{
				t-=pq.top()-nd[i].a;
				pq.pop();
				pq.push(nd[i].a);
			}
		}
	}
	printf("%d",cnt);
	return 0;
}

结果,悬赏关注

2023/4/30 07:59
加载中...