Cod sursa(job #1376167)

Utilizator calinalexandruAlexandru Calin calinalexandru Data 5 martie 2015 16:21:46
Problema Lupul Urias si Rau Scor 64
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream in("lupu.in");
ofstream out("lupu.out");
struct str
{
    int dist,lung;
};
str v[100010];
inline bool cmp(str a,str b)
{
    if (a.dist==b.dist) return a.lung<b.lung;
    else return a.dist<b.dist;
}
priority_queue <int> coada;
int main()
{
    int n,x,l,d,rez=0,i;
    in>>n>>x>>l;
    for(i=1; i<=n; i++)
        in>>v[i].dist>>v[i].lung;
    sort(v+1,v+n+1,cmp);
   /* for(i=1; i<=n; i++)
        out<<v[i].dist<<" "<<v[i].lung<<endl;*/
    i=1;
    for(d=0;d<=x;d=d+l)
    {
        while(v[i].dist<=d)
            coada.push(v[i++].lung);
        rez=rez+coada.top();
        coada.pop();
    }
    out<<rez;
}