Cod sursa(job #1258530)

Utilizator cioionutFMI Ionut Ciocoiu cioionut Data 9 noiembrie 2014 00:00:14
Problema Lupul Urias si Rau Scor 72
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul II Marime 0.67 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;
	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;
		t[timp].push_back(i);
		oi.push_back(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;
}