Cod sursa(job #2463858)

Utilizator Savu_Stefan_CatalinSavu Stefan Catalin Savu_Stefan_Catalin Data 28 septembrie 2019 13:12:02
Problema Lupul Urias si Rau Scor 52
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream in("lupu.in");
ofstream out("lupu.out");
struct nya{int st,dr;};
nya a[100001];
int nr,nr1,s,n,x,l,i,j,op;
priority_queue <int> Q;
int cmp(nya a,nya b)
{
return (a.st<b.st||(a.st==b.st&&a.dr>b.dr));
}
int main()
{
    in>>n>>x>>l;
    for (i=1;i<=n;++i)
    {
        in>>a[i].st>>a[i].dr;
       if (l!=1) a[i].st=(a[i].st+1)/l+1;
    }
    sort(a+1,a+n+1,cmp);
    nr=a[1].st;
    for (i=1;i<=n;++i)
    {
        nr=a[i].st;
        j=i;
        while (nr==a[j].st&&j<=n)
        {
            Q.push(a[j].dr);
            j++;
        }
        while (nr==a[i].st&&i<=n&&op<nr&&op<x)
        {
            s=s+Q.top();
            op++;
            Q.pop();
            i++;
        }
        while (nr==a[i].st&&i<=n)
        {
         i++;
        }
        i--;
        nr1=nr;
    }
    out<<s;
    return 0;
}