Pagini recente » Borderou de evaluare (job #804481) | Borderou de evaluare (job #2393482) | Borderou de evaluare (job #142786) | Borderou de evaluare (job #1653581) | Cod sursa (job #2412358)
#include<fstream>
#include<set>
#include<vector>
using namespace std;
ifstream in ("lupu.in");
ofstream out ("lupu.out");
int t[100005],lana[100001],aux[100001],buc,total,n,l,x,oita;
vector<int> v[100001];
multiset<int> s;
int main (void) {
in >> n >> x >> l;
for (int i = 1; i <= n; i ++) {
in >> t[i] >> lana[i];
}
for (int i = x; i >= 0; i -= l) {
buc ++;
for (int j = i; j > i-l && j >= 0; j --) {
aux[j] = buc;
}
}
for (int i = 1; i <= n; i ++) {
t[i] = aux[t[i]];
v[t[i]].push_back (lana[i]);
}
for (int i = buc; i >= 1; i --) {
for (int j = 0; j < v[i].size(); j ++) {
s.insert (v[i][j]);
}
total += *s.rbegin();
s.erase(--s.end());
}
out << total;
return 0;
}