Cod sursa(job #2701212)

Utilizator AndreiStreheStreche Andrei Claudiu AndreiStrehe Data 30 ianuarie 2021 10:14:22
Problema Carnati Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.38 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

    struct carnati
    {
        int ora,cost;
    }v[2005];
    bool cmp(carnati x,carnati y)
    {
        if(x.ora!=y.ora)
        {
            return x.ora<y.ora;
        }
        else
        {
            return x.cost<y.cost;
        }
    }

int n,salariu,i,carnativanduti,inceputprogram,finalprogram,j,profit,profitmaxim;

int main()
{
    f>>n>>salariu;

    for(i=1;i<=n;i++)
    {
        f>>v[i].ora>>v[i].cost;
    }

    sort(v+1, v+n+1, cmp);

    for(i=1;i<=n;i++)
    {
        carnativanduti=0;
        inceputprogram=1505;
        finalprogram=0;
        for(j=1;j<=n;j++)
        {
            if(v[j].cost>=v[i].cost)
            {
                carnativanduti++;
                if(v[j].ora<inceputprogram)
                {
                    inceputprogram=v[j].ora;
                }
                if(v[j].ora>finalprogram)
                {
                    finalprogram=v[j].ora;
                }
            }
            if(inceputprogram!=1505)
            profit=carnativanduti*v[i].cost-(finalprogram-inceputprogram+1)*salariu;

            if(profit>profitmaxim)
            {
                profitmaxim=profit;
            }
        }
    }
    g<<profitmaxim;

    return 0;
}