#include<bits/stdc++.h>
using namespace std;
struct node
{
int w,t;
}num[1000001];
int n,m;
bool compare(node x,node y)
{
return x.w>y.w;
}
class Solution{
public:
int vis[1000001];
int ans,flag,now;
int solution()
{
ans=flag=now=0;
sort(num+1,num+n+1,compare);
for(int i=1; i<=n; i++)
{
if(num[i].t<=now)continue;
flag=1;
for(int j=num[i].t; j>=1; j--)
{
if(vis[j]==false)
{
vis[j]=true;
ans+=num[i].w;
flag=0;
break;
}
}
if(flag)
{
now=num[i].t;
}
}
return ans;
}
};
int main()
{
Solution x;
scanf("%d",&n);
for(int i=1; i<=n; i++)
{
scanf("%d%d",&num[i].t,&num[i].w);
}
printf("%d\n",x.solution());
}
#10008. 「一本通 1.1 练习 4」家庭作业
最新推荐文章于 2024-08-09 10:25:03 发布