Pagini recente » Cod sursa (job #1603354) | Istoria paginii arhiva | Cod sursa (job #2780014) | Cod sursa (job #3228946) | Cod sursa (job #1202356)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
ifstream f ("lupu.in");
ofstream g ("lupu.out");
const int NMAX = 100000 + 1;
int n, x, l, t;
pair<int, int> v[NMAX];
void citeste () {
f >> n >> x >> l;
int a, b, j = 0;
for (int i = 1; i <= n; i++) {
f >> a >> b;
if (a <= x) j++, v[j] = make_pair(a, b);
}
n = j;
}
bool conditie (pair <int, int> a, pair <int, int> b) {
if (a.second > b.second) return true;
if (a.second == b.second && a.first < b.second) return true;
else return false;
}
void rezolva () {
int k = 0;
long long sol = 0;
for (int i = 1; i <= n; i++) {
if (v[i].first + k <= x) {
sol += v[i].second;
k += l;
}
}
g << sol << '\n';
}
int main () {
citeste ();
sort (v + 1, v + n + 1, conditie);
rezolva ();
return 0;
}