优先队列做法0分求调
查看原帖
优先队列做法0分求调
1411354
xf20280111楼主2025/2/2 17:49
#include<bits/stdc++.h>
using namespace std;
struct cow{
	int a,b;
}ar[200010];
bool cmp(cow p,cow q)
{
	return p.a>q.a;
}
int main()
{
	priority_queue<int> pq;
	int n,l,q;
	cin>>n >> q >> l;
	for (int i=1;i<=n;i++)
	{
		cin>>ar[i].a;
	}
	for (int i = 1;i <= n;i++){
		cin >> ar[i].b;
	}
	sort(ar+1,ar+n+1,cmp);
	int cnt=0;
	for (int i=1;i<=n;i++)
	{
		if (i==1)
		{
			q-=(l-ar[i].a);
		}
		else
		{
			q-=(ar[i-1].a-ar[i].a);
		}
		while (q<0)
		{
			cnt++;
			if (!pq.empty()){
				q+=pq.top();
				pq.pop();
			}
			else
			{
				cout<<-1;
				return 0;
			}	
		}
		pq.push(ar[i].b);
						
	}
	q-=ar[n].a;
	while (q<0)
	{
		cnt++;
		if (!pq.empty()){
			q+=pq.top();
			pq.pop();
		}
		else
		{
			cout<<-1;
			return 0;
		}	
	}
	cout<<cnt;
	return 0;
}
2025/2/2 17:49
加载中...