Cod sursa(job #2304513)

Utilizator CronosClausCarare Claudiu CronosClaus Data 18 decembrie 2018 09:42:44
Problema Lupul Urias si Rau Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>
#define pp pair< long long, long long >

using namespace std;

const int mxn = 100 * 1000 + 10;

pp v[ mxn ];

int n, d, l;

bool comp(pp a, pp b){
    return a.first > b.first;
}

long long s;

int main()
{
    ifstream cin("lupu.in");
    ofstream cout("lupu.out");
    cin>> n >> d >> l;
    for(int i = 0; i < n; i++)
        cin>> v[ i ].first >> v[ i ].second;
    sort(v, v + n, comp);
    int k = 1, mx = 0;
    for(int i = 0; i < n; i++){
        if(v[ i ].first <= d){
            if(v[ i ].first > d - k * l){
                mx = max(mx, v[ i ].second);
            }
            else{
                s += mx;
                mx = v[ i ].second;
                k++;
            }
        }
    }
    s += mx;
    cout<< s;
    return 0;
}