Pagini recente » Cod sursa (job #2817856) | Cod sursa (job #2828189) | Cod sursa (job #2036175) | Monitorul de evaluare | Cod sursa (job #2292503)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <set>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
int main()
{
int n, x, L;
vector <pair<int, int>> oi;
fin>>n>>x>>L;
int i;
for(i=1;i<=n; i++)
{
int d, a;
fin>>d>>a;
oi.push_back({d,a});
}
sort(oi.begin(), oi.end());
multiset <int> heap;
int st=0, dr = x%L; //interval distanta
long long s=0;
for(int index=0; dr<=x; st=dr+1, dr+=L)
{
while(st<=oi[index].first && oi[index].first<=dr && index<n)
{
heap.insert(-oi[index].second);
index++;
}
if(!heap.empty())
{
s-=*heap.begin();
heap.erase(heap.begin());
}
}
fout<<s;
}