Cod sursa(job #2821737)

Utilizator marcumihaiMarcu Mihai marcumihai Data 22 decembrie 2021 22:43:21
Problema Lupul Urias si Rau Scor 4
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f ("lupu.in");
ofstream g ("lupu.out");

int n;
struct oitza{
int val;
int timp;
int parte;
bool operator < (const oitza &A) const{
    return A.val>val;
}

};
int l;
oitza a[100005];
int x;
priority_queue <oitza> Q;

int cmp(oitza A , oitza B)
{
    return A.timp>B.timp;
}


int main()
{
    f>>n>>x>>l;
    int oimaxim=x/l+1;
    for(int i=1;i<=n;++i)
    {
        int prim , secund;
        f>>secund>>prim;
        a[i].val=prim;
        a[i].timp=secund;
        a[i].parte=secund/l+1;
    }
    sort(a+1 , a+n+1 , cmp);

    for(int i=1;i<=n;++i)
    {
        cout<<a[i].timp<<" "<<a[i].parte<<" "<<a[i].val<<"\n";
    }
    Q.push(a[1]);
    for(int i=2;i<=n;++i)
    {
        if(a[i].parte<a[i-1].parte)
            Q.push(a[i]);
        else if(a[i].val>Q.top().val)
        {
            Q.pop();
            Q.push(a[i]);
        }
    }
    int nr=0;
    int cont=0;
    while(!Q.empty())
    {
        nr+=Q.top().val;
        Q.pop();
        ++cont;
    }
    cout<<cont;
    g<<nr;


    return 0;
}