Cod sursa(job #923617)

Utilizator thewildnathNathan Wildenberg thewildnath Data 23 martie 2013 18:21:42
Problema Lupul Urias si Rau Scor 48
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
#include<vector>
#include<algorithm>
#include<queue>
using namespace std;

pair <int,int>  v[10002];
priority_queue <int> st;

int main()
{
    freopen("lupu.in","r",stdin);
    freopen("lupu.out","w",stdout);
    int n,x,l,i,a,b,aux;
    long long sol=0;
    scanf("%d%d%d",&n,&x,&l);
    for(i=0;i<n;i++)
    {
        scanf("%d%d",&a,&b);
        v[i].first=(x-a)/l+1;
        v[i].second=b;
    }
    sort(v,v+n);
    reverse(v,v+n);
    ////////////
    aux=v[0].first;
    i=0;
    while( aux )
    {
        while(i<n&&aux==v[i].first)
        {
            st.push(v[i].second);
            i++;
        }
        if(st.size())
        {
        sol+=st.top();
        st.pop();
        }
        aux--;
    }
    printf("%lld\n",sol);
    return 0;


}