Cod sursa(job #2138118)

Utilizator Eduard24Eduard Scaueru Eduard24 Data 21 februarie 2018 13:03:23
Problema Lupul Urias si Rau Scor 4
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");

long long n,x,l,i,sum=0,j;
long long H[100005];
struct heap
{
    int d,c;
}v[100005];

void Comb_Heap(int i, int n)
{
    int p=H[i];
    int o=v[i].d;
    int tata=i;
    int fiu=2*i;
    while(fiu<=n)
    {
        if(fiu<n)
        {
            if(H[fiu]<H[fiu+1])
            {
                fiu++;
            }
        }
        if(p<H[fiu])
        {
            v[tata].d=v[fiu].d;
            H[tata]=H[fiu];
            tata=fiu;
            fiu=fiu*2;
        }
        else
        {
            fiu=n+1;
        }
        v[tata].d=o;
        H[tata]=p;
    }
}

void Creare_Heap()
{
    int i;
    for(i=n/2; i; i--)
    {
        Comb_Heap(i,n);
    }
}

int main()
{
    fin>>n>>x>>l;
    for(i=1;i<=n;i++)
    {
        fin>>v[i].d>>v[i].c;
        H[i]=v[i].c;
    }
    Creare_Heap();
    for(i=1;i<=n;i++)
    {
        if(v[i].d<=x)
        {
            sum=sum+H[i];
            for(j=i+1;j<=n;j++)
            {
                v[j].d=v[j].d+l;
            }
        }
    }
    fout<<sum;
    return 0;
}