Pagini recente » Cod sursa (job #430188) | Cod sursa (job #2471134) | Cod sursa (job #608848) | Cod sursa (job #1664678) | Cod sursa (job #2443955)
#include <iostream>
#include <fstream>
#include <utility>
#include <algorithm>
#include <vector>
using namespace std;
bool sortbysec(pair<int,int> &a,
pair<int,int> &b)
{
return (a.first > b.first);
}
int main(){
ifstream fin("lupu.in");
ofstream fout("lupu.out");
int n, x, l, d, lana;
fin >> n >> x >> l;
vector<pair<int, int>> v;
for(int i = 0; i < n; i++){
fin >> d >> lana;
v.push_back(make_pair(d, lana));
}
sort(v.begin(), v.end(), sortbysec);
int copie = v[n-1].first;
//fout << copie <<'\n';
int pas = 0;
while(copie <= x){
pas++;
copie += l;
}
int max = 0;
int nr = 0;
int S = 0;
//fout << pas<<'\n';
while(pas > 0){
max = 0;
nr = 0;
for(int i = 0; i < v.size(); i++){
if(v[i].first + l > x){
nr++;
if(v[i].second > max){
max = v[i].second;
}
}
}
v.erase(v.begin(), v.begin() + nr);
for(int i = 0; i < v.size(); i++){
v[i].first += l;
}
S += max;
pas--;
}
fout << S <<" ";
}