Cod sursa(job #1258558)

Utilizator cioionutFMI Ionut Ciocoiu cioionut Data 9 noiembrie 2014 00:31:28
Problema Lupul Urias si Rau Scor 88
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul II Marime 0.68 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<map>
#include<queue>
using namespace std;
int main(){
	ifstream f("lupu.in");
	ofstream g("lupu.out");
	vector <int> t[100001];
	vector <int> oi(100001, 0);
	priority_queue <int> q;
	int n,x,l,i=0;
	f >> n >> x >> l;
	int max = 0;
	for (i = 0; i <n; i++){
		int a, b;
		f >> a >> b;
		int timp = (x - a) / l;
		if (timp >= 0) t[timp].push_back(i);
		oi[i] = b;
		if (timp>max) max = timp;
	}
	long long lupu = 0;
	for (i = max; i >= 0; i--){
		for (int j = 0; j < t[i].size(); j++)
			q.push(oi[t[i][j]]);
		lupu += q.top();
		q.pop();
	}
	g << lupu;
	g.close();
	f.close();
	//cin.get();
	return 0;
}