Cod sursa(job #1794847)

Utilizator ArkinyStoica Alex Arkiny Data 1 noiembrie 2016 19:34:29
Problema Lupul Urias si Rau Scor 8
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream>
#include<queue>
using namespace std;

struct comparator
{
	bool operator()(const pair<int, int> &p1, const pair<int, int> &p2)
	{
		if (p1.second < p2.second)
			return 1;
		else if (p1.second == p2.second)
		{
			return p1.first < p2.first;
		}
		else
			return 0;
	}
};

priority_queue<pair<int, int>, vector<pair<int, int>>, comparator> PQ;

ifstream in("lupu.in");
ofstream out("lupu.out");

int main()
{

	int N, X, L;

	in >> N >> X >> L;

	for (int i = 1;i <= N;++i)
	{
		int a, b;

		in >> a >> b;

		PQ.push(make_pair(a, b));
	}
	long long s = 0;
	int j = 0;
	while (PQ.size())
	{
		pair<int, int> e = PQ.top();

		if (e.first + L*j <= X)
			s += e.second,++j;

		PQ.pop();
	}

	out << s;

	return 0;
}