Cod sursa(job #911667)
#include<fstream>
#include<set>
#include<algorithm>
using namespace std;
int n,m,k,i;
struct oaie
{
unsigned long long dist,l;
};
oaie a[100001];
unsigned long long max1[100001],sol,pas;
bool cmp(oaie &a, oaie &b)
{
return a.l>b.l;
}
int main()
{
ifstream f("lupu.in");
ofstream g("lupu.out");
f>>n>>m>>k;
for(i=1;i<=n;++i)
{
f>>a[i].dist>>a[i].l;
a[i].dist=(m-a[i].dist)/k+1;
pas=max(pas,a[i].dist);
max1[a[i].dist]=max(max1[a[i].dist],a[i].l);
}
for(i=1;i<=pas;++i)
sol+=max1[i];
g<<sol;
}