Pagini recente » Cod sursa (job #735063) | Cod sursa (job #1881294) | Cod sursa (job #436737) | Monitorul de evaluare | Cod sursa (job #2292479)
#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});
}
int s=0;
sort(oi.begin(), oi.end());
/*for(i=0; i<n; i++)
{
cout<<oi[i].first<<" "<<oi[i].second<<endl;
}*/
multiset <int> heap;
int index=0;
while(oi[index].first <= x%L)
{
heap.insert(-oi[index].second); //pt aflarea max
index++;
}
s-=*heap.begin();
if(!heap.empty())
heap.erase(heap.begin());
for(i=0 ;i<=x/L; i++)
{
while(oi[index].first <= x%L+i*L && index<=n)
{
heap.insert(-oi[index].second);
index++;
}
s-=*heap.begin();
if(!heap.empty())
heap.erase(heap.begin());
}
fout<<s;
}