比赛 20120413 评测结果 AAAAAAAAAAAA
题目名称 工作进度 最终得分 100
用户昵称 Makazeu 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-04-13 19:55:01
显示代码纯文本
#include <cstdio>
#include <cstdlib>
#include <queue>
#include <set>
#include <algorithm>
using namespace std;
typedef long long LL;
LL N;
class JOB{public:LL end,val;}J[100001];
bool cmp(const JOB& a,const JOB& b) {return a.end<b.end;}

void init()
{
	scanf("%lld\n",&N); J[0].end=0,J[0].val=0;
	for(int i=1;i<=N;i++) scanf("%lld %lld\n",&J[i].end,&J[i].val);
	sort(J+1,J+N+1,cmp); return;
}
/*
class cmp2
{public:bool operator() (const LL& a,const LL& b) {return a>b;}};
set<LL,cmp2> Set;*/
priority_queue<LL> Set;
void solve()
{
	LL now=2000000000,Ans=0;
	for(LL i=N;i>=0;i--)
	{
		for(;now>J[i].end && !Set.empty();now--)
		{
			//Ans+=*(Set.begin()); 
			//Set.erase(Set.begin());
			Ans+=Set.top();Set.pop();
		}
		now=J[i].end;
		//Set.insert(J[i].val);
		Set.push(J[i].val);
	}
	printf("%lld\n",Ans);
}

int main()
{
	freopen("joba.in","r",stdin);
	freopen("joba.out","w",stdout);
	init();
	solve();
	return 0;
}