Pagini recente » Cod sursa (job #2831790) | Cod sursa (job #2092035) | Cod sursa (job #2964575) | Cod sursa (job #2390773) | Cod sursa (job #3169083)
#include <iostream>
#include <fstream>
#include <algorithm>
#define N_MAX 100005
using namespace std;
ifstream in ("lupu.in");
ofstream out ("lupu.out");
int n, max_distance, rez_wool, rate;
struct sheep {
int wool, distance;
}arr[N_MAX];
bool comp (sheep x, sheep y){
if (x.wool > y.wool)
return true;
else if (x.wool == y.wool){
if (x.distance > y.distance)
return true;
return false;
}
return false;
}
void solve (){
for (int i=1; i<=n; ++i){
if (arr[i].wool == max_distance){
rez_wool += arr[i].distance;
max_distance -= rate;
}
}
out << rez_wool;
}
int main (){
in >> n >> max_distance >> rate;
for (int i=1; i<=n; ++i){
in >> arr[i].wool >> arr[i].distance;
if (arr[i].wool % rate != 0)
arr[i].wool = (arr[i].wool / rate + 1) * rate;
}
sort (arr + 1, arr + n + 1, comp);
solve ();
return 0;
}