Pagini recente » Cod sursa (job #2330738) | Cod sursa (job #3157667) | Cod sursa (job #630428) | Cod sursa (job #1946251) | Cod sursa (job #2453754)
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
const int NMAX=100005;
int n,x,l,a[NMAX],t[NMAX];
int tmax;
long long int sol;
priority_queue <int> q;
void citire()
{
fin>>n>>x>>l; int d;
for (int i=1; i<=n; i++){
fin>>d>>a[i];
t[i]=1+(x-d)/l;
}
}
void stabTMax()
{
for (int i=1; i<=n; i++)
if (t[i]>tmax)
tmax=t[i];
}
void rezolvare()
{
for (int j=tmax; j>=1; j--){
for (int k=1; k<=n; k++){
if (t[k]==j)
q.push(a[k]);
}
if (!q.empty()){
sol+=q.top();
q.pop();
}
}
}
int main()
{
citire();
stabTMax();
rezolvare();
fout<<sol;
}