Pagini recente » Cod sursa (job #1439921) | Cod sursa (job #688296) | Cod sursa (job #565662) | Cod sursa (job #1116689) | Cod sursa (job #2032683)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
#define OAIE pair<int,int>
ifstream in ("lupu.in");
ofstream out ("lupu.out");
int N, M, K;
long long suma;
OAIE arr[100002];
priority_queue < int > coada;
void citire(){
in >> N >> M >> K;
for (int i = 1; i <= N; ++i) {
in >> arr[i].first >> arr[i].second;
}
}
void rezolvare(){
int hotar = 0;
for (int i = 1; i <= N && arr[i].first <= M; ++hotar) {
while (i <= N && arr[i].first <= hotar * K) {
coada.push(arr[i].second);
i++;
}
if (!coada.empty()){
suma += coada.top();
coada.pop();
}
}
}
int main(){
citire();
sort(arr + 1, arr + N + 1);
rezolvare();
out << suma;
in.close();
out.close();
}