Cod sursa(job #1775135)

Utilizator ichb1Albert Greaca ichb1 Data 9 octombrie 2016 21:56:00
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<cstdio>
#include<queue>
#include<vector>
using namespace std;
priority_queue<int>oi;
struct thing
{
    int timp,lana;
};
vector<thing>v[100005];
int main()
{
    freopen("lupu.in","r",stdin);
    freopen("lupu.out","w",stdout);
    int n,l,x,i,j,d,a,al;
    thing nr;
    scanf("%d%d%d",&n,&x,&l);
    for(i=1;i<=n;i++)
        {
        scanf("%d%d",&d,&a);
        if (d>x)
            continue;
        al=(x-d)/l+1;
        if (al>n)
            al=n;
        nr.timp=al;
        nr.lana=a;
        v[al].push_back(nr);
        }
    long long sol=0;
    for(i=n;i>=1;i--)
        {
        for(j=0;j<v[i].size();j++)
            oi.push(v[i][j].lana);
        if (oi.empty())
            continue;
        al=oi.top();
        sol=sol+al;
        oi.pop();
        }
    printf("%lld\n",sol);
return 0;
}