Pagini recente » Cod sursa (job #1365741) | Cod sursa (job #432906) | Cod sursa (job #2373170) | Cod sursa (job #2702012) | Cod sursa (job #2450355)
#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
#define ull unsigned long long
ifstream fin("lupu.in");
ofstream fout("lupu.out");
bool cmp(const tuple<ull,ull,ull> &a, const tuple<ull,ull,ull> &b)
{
ull 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);
ull n, x, l;
vector<tuple<ull, ull, ull> >vp;
cin >> n >> x >> l;
for (ull i = 0; i < n; i++)
{
ull d, val;
cin >> d >> val;
vp.push_back(make_tuple(((x - d) / l + 1), val, d));
}
sort(vp.begin(), vp.end(), cmp);
ull cnt = 0, total = 0;
for (ull i = 0; i < vp.size(); i++)
{
ull val, d;
tie(ignore, val, d) = vp[i];
if (d + cnt > x) continue;
else
{
total += val;
cnt += l;
}
}
cout << total;
}