Cod sursa(job #1800740)

Utilizator ducu34Albastroiu Radu Gabriel ducu34 Data 7 noiembrie 2016 23:40:10
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
//
//  main.cpp
//  Lupul Urias si Rau
//
//  Created by Albastroiu Radu on 11/7/16.
//  Copyright © 2016 Albastroiu Radu. All rights reserved.
//

#include <iostream>
#include <fstream>
#include <algorithm>
#include <map>
#include <vector>
#include <queue>
using namespace std;

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

int n, x, l, i, j, a, b;
long long suma;

vector< pair<int, int> > oi;
priority_queue<int> oi_aproape;

int main()
{
    fin >> n >> x >> l;
    
    for(i = 0; i < n; i++)
    {
        fin >> a >> b;
        oi.push_back(make_pair(a, b));
    }
    
    sort(oi.begin(), oi.end());
    
    for(i = 0, j = 0; i <= x; i+=l)
    {
        for(;j < n && oi[j].first <= i; j++)
        {
            oi_aproape.push(oi[j].second);
        }
        if(oi_aproape.size())
        {
            suma += oi_aproape.top();
            oi_aproape.pop();
        }
    }
    
    fout << suma;
    
    return 0;
}