Pagini recente » Cod sursa (job #2948925) | Cod sursa (job #626968) | Cod sursa (job #835792) | Cod sursa (job #773729) | Cod sursa (job #1760528)
#include <iostream>
#include <fstream>
#include <set>
#include <algorithm>
using namespace std;
/// Cod gutui Antracod
ifstream in("lupu.in");
ofstream out("lupu.out");
const int NMAX = 200001;
struct gutuie
{
int exp;
int value;
};
gutuie v[NMAX];
bool cmp(const gutuie &i,const gutuie &j)
{
return i.exp<j.exp;
}
struct comp
{
bool operator()(const int &x,const int &y)
{
return x>y;
}
};
int main()
{
multiset <int,comp> Heap;
int N,H,U;
int sol=0;
int maxexp=0;
int i,j;
in>>N>>H>>U;
for(i=1; i<=N; i++)
{
int hg,val;
in>>hg>>val;
v[i].exp=(H-hg)/U;
v[i].value=val;
maxexp=max(maxexp,v[i].exp);
}
sort(v+1,v+N+1,cmp);
v[0].exp;
int k=N;
for(i=maxexp; i>=0;i--)
{
j=k;
for(; v[j].exp==i; j--)
{
Heap.insert(v[j].value);
}
k=j;
if(Heap.empty()==0)
{
sol+=*(Heap.begin());
Heap.erase(Heap.begin());
}
}
out<<sol;
}