Cod sursa(job #2863598)

Utilizator CrullTCrull Thomas CrullT Data 6 martie 2022 23:08:08
Problema Lupul Urias si Rau Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

pair <long long, long long> v[100001];
bool t[100001];

bool sortbypair (pair <long long , long long> a, pair <long long ,long long> b)
{
    if(a.first>b.first)
        return true;
    else if(a.first == b.first)
    {
        if(a.second<b.second)
            return true;
        else
            return false;
    }
    else
        return false;

}

int main()
{
    int n;
    long long x,l,q,j=1,i,s=0,maxtime=0;
    in>>n>>x>>l;
    for(i=1;i<=n;i++)
    {
        in>>q;
        if(n-q>0)
        {
            v[j].second=(x-q)/l+1;
            in>>v[j].first;
            if(v[j].second>maxtime)
                maxtime=v[j].second;
            j++;
        }
        else
            in>>q;
    }
    n=j-1;
    sort(v+1,v+n+1,sortbypair);
    for(i=1;i<=n;i++)
        for(j=v[i].second;j>=1;j--)
            if(t[j]==0)
            {
                s+=v[i].first;
                t[j]=1;
                break;
            }
    out<<s;
    return 0;
}