Pagini recente » Cod sursa (job #2293410) | Cod sursa (job #2780504) | Cod sursa (job #2475354) | Cod sursa (job #475348) | Cod sursa (job #2975068)
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
int n, x, l;
priority_queue<int> wool;
vector<pair<int,int>> a;
void AfisareVector()
{
for(auto i = 0; i < a.size(); i++)
cout << a[i].first << " " << a[i].second << "\n";
}
int main()
{
fin >> n >> x >> l;
for(int i = 0; i < n; i++)
{
int a1, a2;
fin >> a1 >> a2;
int timp = (x-a1)/l;
a.push_back({timp, a2});
}
sort(a.begin(), a.end());
//AfisareVector();
long long sum = 0;
int i = a.size()-1;
int timp = a[a.size()-1].first;
while(timp >=0)
{
while(i >= 0 && a[i].first >= timp)
{
wool.push(a[i].second);
i--;
}
if(!wool.empty())
{
sum += (wool.top());
wool.pop();
}
timp--;
}
fout << sum;
return 0;
}