Pagini recente » Cod sursa (job #1412998) | Cod sursa (job #660598) | Cod sursa (job #2409456) | Cod sursa (job #2620783) | Cod sursa (job #2292432)
#include <bits/stdc++.h>
using namespace std;
struct oaie
{
int distanta,lana;
oaie(int _dis=0,int _lan=0)
{
distanta=_dis;
lana=_lan;
}
};
int main()
{
ifstream in("lupu.in");
ofstream out("lupu.out");
int N,X,L;
in>>N>>X>>L;
vector<oaie> oi;
for(int i=0; i<N; i++)
{
int aux1,aux2;
in>>aux1>>aux2;
oi.push_back(oaie(aux1,aux2));
}
priority_queue<int> selectate;
int suma=0;
int nr_iter=X/L;
for(int i=0; i<=nr_iter; i++)
{
for(vector<oaie>::iterator iter=oi.end()-1; iter!=oi.begin(); iter--)
{
if((*iter).distanta<=X%L+i*L)
{
selectate.push((*iter).lana);
oi.erase(iter);
}
}
if(!oi.empty())
{
if(oi[0].distanta<=X%L+i*L)
{
selectate.push(oi[0].lana);
oi.erase(oi.begin());
}
}
if(!selectate.empty())
{
suma+=selectate.top();
selectate.pop();
}
}
out<<suma;
in.close();
out.close();
return 0;
}