Cod sursa(job #1744431)

Utilizator isav_costinVlad Costin Andrei isav_costin Data 19 august 2016 19:32:39
Problema Carnati Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <cstdio>
#include <algorithm>

int pr[2001], tp[2001];

struct date
{
    int t;
    int p;
} v[2001];

using namespace std;

bool cmp( date a, date b )
{
    return a.t<b.t;
}

int main()
{
    freopen( "carnati.in", "r", stdin );
    freopen( "carnati.out", "w", stdout );

    int n, c, i, j, k, mp=0;

    scanf( "%d%d", &n, &c );

    for( i=1;i<=n;i++ )
        scanf( "%d%d", &v[i].t, &v[i].p );

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

    for( i=1;i<=n;i++ )
        for( j=1;j<=n;j++ )
        {
            if( v[j].p>=v[i].p )
                k=v[i].p;
            else
                k=0;

            if( k-c<(k+pr[j-1])-(v[j].t-tp[j-1]+1)*c )
            {
                pr[j]=pr[j-1]+k;
                tp[j]=tp[j-1];
            }
            else
            {
                pr[j]=k;
                tp[j]=v[j].t;
            }

            if( mp<pr[j]-(v[j].t-tp[j]+1)*c )
                mp=pr[j]-(v[j].t-tp[j]+1)*c;
        }

    printf( "%d", mp );

    return 0;
}