#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#define ll long long
using namespace std;
priority_queue<ll>q;
ll sum=0,n;
struct alice
{
ll w,v,s;
}hh[200000+5];
bool cmp(alice a,alice b)
{
return a.s<b.s;
}
int main()
{
scanf("%lld",&n);
for(ll i=1;i<=n;i++)
{
scanf("%lld%lld",&hh[i].w,&hh[i].v);//承受能力与质量
hh[i].s=hh[i].w+hh[i].v;
}
sort(hh+1,hh+1+n,cmp);
for(ll i=1;i<=n;i++)
{
if(hh[i].w>=sum)
{
sum+=hh[i].v;
q.push(hh[i].v);
}
else if(hh[i].v<q.top())
{
sum+=hh[i].v-q.top();
q.pop();
q.push(hh[i].v);
}
}
printf("%d\n%lld",q.size(),sum);
return 0;
}
【codevs 2382】挂缀
最新推荐文章于 2019-10-19 11:05:43 发布