Cod sursa(job #3323221)

Utilizator Alexutu010Draghici Alex Alexutu010 Data 17 noiembrie 2025 18:49:23
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.21 kb

#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("carnati.in");
ofstream fout("carnati.out");

int p[2001], t[2001];

int main()
{
    int c, i, j, n, maxs=0, s, ok, a;
    fin >> n >> c;
    for(i=1; i<=n; i++)
    {
        fin >> t[i] >> p[i];
    }
    t[0]=t[1];
    for(i=1; i<n; i++)
    {
        ok=0;
        for(j=1; j<n-i+1; j++)
        {
            if(t[j]>t[j+1])
            {
                a=t[j];
                t[j]=t[j+1];
                t[j+1]=a;
                a=p[j];
                p[j]=p[j+1];
                p[j+1]=a;
                ok=1;
            }
        }
        if(ok==0)
        {
            break;
        }
    }
    for(i=1; i<=n; i++)
    {
        s=0;
        ok=0;
        for(j=1; j<=n; j++)
        {
            if(ok==1)
            {
                s-=(t[j]-t[j-1])*c;
            }
            ok=1;
            if(s<=0)
            {
                s=0;
            }
            if(p[i]<=p[j])
            {
                s+=p[i];
            }
            if(maxs<s)
            {
                maxs=s;
            }
        }
    }
    fout << maxs-c;

    return 0;
}