Cod sursa(job #2292468)

Utilizator Andrei243Nitu Mandel Andrei Andrei243 Data 29 noiembrie 2018 16:46:54
Problema Lupul Urias si Rau Scor 32
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#include<fstream>
#include <iostream>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;

struct oaie
{
    int distanta,lana;
    oaie(int _dis=0,int _lan=0)
    {
        distanta=_dis;
        lana=_lan;
    }

    bool operator<(oaie &b)const{
    return distanta<b.distanta;


    }

};

int main()
{
    ifstream in("lupu.in");
    ofstream out("lupu.out");
    int N,X,L;
    in>>N>>X>>L;

    vector<oaie> oi;
    for(int i=0; i<N; i++)
    {
        int aux1,aux2;
        in>>aux1>>aux2;
        oi.push_back(oaie(aux1,aux2));

    }
    sort(oi.begin(),oi.end());

    priority_queue<int> selectate;
    long long suma=0;
    int posi=X%L;
    int pozitie=0;
    while(posi<=X&&pozitie<N){

        if(oi[pozitie].distanta<=posi){

            for(;pozitie<N&&oi[pozitie].distanta<=posi;pozitie++){
                selectate.push(oi[pozitie].lana);

            }

            suma+=selectate.top();
            selectate.pop();

        }



      posi+=L;
    }
    out<<suma;
    in.close();
    out.close();
    return 0;
}