Cod sursa(job #1322236)

Utilizator obidanDan Ganea obidan Data 19 ianuarie 2015 21:37:24
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 0.76 kb
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");

struct oi
{
     int d, l;
}Sheep[100005];

bool SheepCOmp(oi A, oi B)
{
    return (A.d<B.d);
}
priority_queue < int > Heap;
int main()
{
    int n, x, l, i=1;
    long long sol=0;
    f>>n>>x>>l;
    for(int i=1;i<=n; i++)
        f>>Sheep[i].d>>Sheep[i].l;

    sort(Sheep+1, Sheep+n+1, SheepCOmp);

    for(int d=0; i<=n && d<=x; d= d + l)
    {
        while (i<=n && Sheep[i].d<=d)
        {
                Heap.push(Sheep[i].l);
                i++;
        }
        if (Heap.size())
           {
            sol+=Heap.top();
            Heap.pop();
           }
    }
    g<<sol<<'\n';
    return 0;
}