Pagini recente » Cod sursa (job #3266848) | Cod sursa (job #2631907) | Cod sursa (job #2176990) | Cod sursa (job #1702680) | Cod sursa (job #1135283)
#include <fstream>
#include <algorithm>
#include <functional>
using namespace std;
int main()
{
ifstream cin("lupu.in");
ofstream cout("lupu.out");
int n, x ,l;
cin >> n >> x >> l;
int d, a;
long long ret = 0;
vector< vector<int> > sheep(n,vector<int>());
vector<int> bst(n,0);
for (int i = 0; i < n; i++) {
cin >> d >> a;
if (d > x) continue;
int steps = (x - d) / l;
if (steps >= n) {
ret += a;
} else {
sheep[steps].push_back(a);
}
}
for (int i = 0; i < n; i++) {
sort (sheep[i].begin(),sheep[i].end(),greater<int>());
for (int k = 0;k < (int)sheep[i].size() && i - k >= 0; k++) {
bst[i - k] = max(bst[i - k],sheep[i][k]);
}
}
for (int i = 0;i < n;i++) {
ret += bst[i];
}
cout << ret << "\n";
return 0;
}