Cod sursa(job #547966)

Utilizator avram_florinavram florin constantin avram_florin Data 6 martie 2011 21:21:59
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
#include<queue>

using namespace std;
const int MaxN = 100005;
const char infile[] = "lupu.in";
const char outfile[] = "lupu.out";

ifstream f(infile);
ofstream g(outfile);

struct oaie{
		int dist,lana;
}a[MaxN];

long long sol;
int n,x,l,dist,i;
priority_queue<int> h;

inline bool cmp( const oaie &a , const oaie &b)
{
	return a.dist < b.dist;
}

int main()
{
	f >> n >> x >> l;
	for( i = 1 ; i <= n ; i++ )
		f >> a[i].dist >> a[i].lana;
	sort(a+1,a+n+1,cmp);
	for(dist = 0 , i = 1 ; dist <= x && i <= n ; dist += l )
		{
			for( ; i <= n && a[i].dist <= dist ; i++ )
				h.push(a[i].lana);
			if( h.size() )
				{
					sol += h.top();
					h.pop();
				}
		}
	g << sol << '\n';
	return 0;
}