Pagini recente » Cod sursa (job #2869904) | Cod sursa (job #2486818) | Cod sursa (job #1227005) | Cod sursa (job #2318719) | Cod sursa (job #473933)
Cod sursa(job #473933)
#include <fstream>
using namespace std;
struct oaie{int lana,dist;} v[1<<17];
ifstream in("lupu.in");
ofstream out("lupu.out");
bool cmp(oaie a,oaie b)
{
return a.dist<b.dist || a.dist==b.dist && a.lana>b.lana;
}
int main()
{
int n,m=0,X,L,x,y,nr,r=0,i;
in>>n>>X>>L;
for (i=1;i<=n;i++)
{
in>>x>>y;
if (x<=X)
{
v[++m].dist=(X-x)/L+1;
v[m].lana=y;
}
}
sort(v+1,v+m+1,cmp);
nr=0;
for (i=1;i<=m;)
{
for (;v[i].dist==v[i-1].dist;i++);
nr+=v[i].dist-v[i-1].dist;
for (;i<=m && nr;nr--,i++)
r+=v[i].lana;
}
out<<r<<"\n";
return 0;
}