Cod sursa(job #1505669)

Utilizator raulmuresanRaul Muresan raulmuresan Data 19 octombrie 2015 17:23:35
Problema Lupul Urias si Rau Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
#include<fstream>
#include<iostream>
#include<vector>
#include<set>
#include <algorithm>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");



int l,n,m,k,i,j,p,x,y,a[100005],t,a1,a2;
long long int sol;
multiset <int> heap;
struct coada
{
    int x,y;
}c[100009];
bool cmp(coada i,coada j)
{
    return i.x>j.x;
}



int main()
{
    fin>>n>>x>>l;
    for(i=1;i<=n;i++)
    {
        fin>>a1>>a2;
        c[i].y=a2;
        c[i].x=((x-a1))/2+1;
       // fout<<a1<<" "<<a2<<"\n";
    }
    sort(c+1,c+n+1,cmp);
    k=c[1].x;
    p=1;
    for(i=k;i>=1;i--)
    {
        //fout<<i<<" ";
        while(c[p].x >= i)
        {
            heap.insert(c[p].y);
            p++;

        }

        if(! heap.empty())
        {
            x=*(--heap.end());
            sol=sol+x;
            //heap.erase(x);
             heap.erase(heap.find(x));
        }


    }
    fout<<"\n";
    multiset<int>::iterator it;
    for(it=heap.begin();it!=heap.end();it++)
    {
        fout<<*it<<" ";
    }
    //fout<<"\n";

    for(i=1;i<=n;i++)
    {
        //fout<<c[i].x<<" "<<c[i].y<<"\n";
    }
    //fout<<sol<<"\n";
}