Cod sursa(job #3280956)

Utilizator CosminaneBoac Mihai Cosmin Cosminane Data 27 februarie 2025 21:37:47
Problema Lupul Urias si Rau Scor 32
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
struct elem{
	int t, x;
};
bool comp(elem a, elem b){
	return a.t > b.t;
}
vector <elem> v;
int main(){
	int n, lup, l, i, j, d, x;
	long long r;
	ifstream fin( "lupu.in" );
	ofstream fout( "lupu.out" );
	fin >> n >> lup >> l;
	for( i = 0; i < n; i++ ){
		fin >> d >> x;
		if( d <= lup ){
			v.push_back({ ( lup - d ) / l, x });
		}
	}
	sort( v.begin(), v.end(), comp );
	priority_queue <int> q;
	r = i = 0;
	while( i < v.size() ){
		j = i;
		while( j < v.size() && v[j].t == v[i].t ){
			//cout << v[j].t << ' ' << v[j].x << '\n';
			q.push( v[j].x );
			j++;
		}
		r += q.top();
		q.pop();
		i = j;
	}
	fout << r;
	return 0;
}