Cod sursa(job #2927911)

Utilizator gabriel.9619Gabriel Stefan Tita gabriel.9619 Data 21 octombrie 2022 19:57:56
Problema Carnati Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
#include <climits>
#include <algorithm>
using namespace std;
ifstream fin("carnati.in");
ofstream fout("carnati.out");
struct om{
    int t, p;
}v[2001];

bool cmp(om a, om b)
{
    if(a.t!=b.t)
    {
        return a.t<b.t;
    }
    return a.p<b.p;
}

int main()
{
    int n, k, i, s=0, smax=INT_MIN, poz=1, pret, j;
    fin>>n>>k;
    for(i=1;i<=n;i++)
    {
        fin>>v[i].t>>v[i].p;
    }
    sort(v+1, v+n+1, cmp);
    for(i=1;i<=n;i++)
    {
        s=-1;
        int pret=v[i].p;
        for(j=1;j<=n;j++)
        {
            if(v[j].p>=pret)
            {
                if(s>=0)
                {
                    s=s+pret-(v[j].t-poz)*k;
                    poz=v[j].t;
                }
                else
                {
                    poz=v[j].t;
                    s=pret-k;
                }
                if(s>smax)
                {
                    smax=s;
                }
            }
        }
    }
    fout<<smax;
}