Cod sursa(job #2292479)

Utilizator MrRobotMrRobot MrRobot Data 29 noiembrie 2018 16:54:51
Problema Lupul Urias si Rau Scor 12
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <set>
using namespace std;

ifstream fin("lupu.in");
ofstream fout("lupu.out");

int main()
{
    int n, x, L;

    vector <pair<int, int>> oi;
    fin>>n>>x>>L;
    int i;
    for(i=1;i<=n; i++)
    {
        int d, a;
        fin>>d>>a;
        oi.push_back({d,a});
    }
    int s=0;
    sort(oi.begin(), oi.end());
    /*for(i=0; i<n; i++)
    {
        cout<<oi[i].first<<" "<<oi[i].second<<endl;
    }*/
    multiset <int> heap;
    int index=0;
    while(oi[index].first <= x%L)
    {
        heap.insert(-oi[index].second); //pt aflarea max
        index++;
    }
    s-=*heap.begin();
    if(!heap.empty())
        heap.erase(heap.begin());

    for(i=0 ;i<=x/L; i++)
    {

        while(oi[index].first <= x%L+i*L && index<=n)
        {
            heap.insert(-oi[index].second);
            index++;
        }
        s-=*heap.begin();
        if(!heap.empty())
            heap.erase(heap.begin());
    }

    fout<<s;
}