Pagini recente » Cod sursa (job #881689) | Cod sursa (job #2426779) | Cod sursa (job #2557726) | Cod sursa (job #1345742) | Cod sursa (job #2450358)
#include <iostream>
#include <algorithm>
#include <vector>
#include <fstream>
#include <cmath>
#include <iomanip>
#include <queue>
#include <tuple>
#include <limits>
#include <stdio.h>
#include <string.h>
using namespace std;
#define ff first
#define ss second
ifstream fin("lupu.in");
ofstream fout("lupu.out");
bool cmp(const tuple<int,int,int> &a, const tuple<int,int,int> &b)
{
int ai, aval, bi, bval;
tie(ai, aval, ignore) = a;
tie(bi, bval, ignore) = b;
if (ai == bi) return aval > bval;
return ai < bi;
}
int main()
{
ios_base::sync_with_stdio(false);
int n, x, l;
vector<tuple<int, int, int> >vp;
cin >> n >> x >> l;
for (int i = 0; i < n; i++)
{
int d, val;
cin >> d >> val;
vp.push_back(make_tuple(((x - d) / l + 1), val, d));
}
sort(vp.begin(), vp.end(), cmp);
long long cnt = 0, total = 0;
for (int i = 0; i < vp.size(); i++)
{
int val, d;
tie(ignore, val, d) = vp[i];
if (d + cnt > x) continue;
else
{
total += val;
cnt += l;
}
}
cout << total;
}