Cod sursa(job #1496548)

Utilizator tudormaximTudor Maxim tudormaxim Data 5 octombrie 2015 10:18:37
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;
const int nmax = 100005;
priority_queue <int> heap;
pair <int,int> v[nmax];
int main()
{
    freopen("lupu.in", "r", stdin);
    freopen("lupu.out", "w", stdout);
    int i, n, x, l, j;
    long long sol=0;
    scanf("%d %d %d", &n, &x, &l);
    for(i=1; i<=n; i++)
        scanf("%d %d", &v[i].first, &v[i].second);
    sort(v+1, v+n+1);
    for(j=0, i=1; j<=x; j=j+l)
    {
        while(i<=n && v[i].first<=j)
            heap.push(v[i++].second);

        if(!heap.empty())
        {
            sol=sol+heap.top();
            heap.pop();
        }
    }
    printf("%lld", sol);
    fclose(stdin);
    fclose(stdout);
    return 0;
}