Cod sursa(job #675354)

Utilizator crazzytudTudor Popa crazzytud Data 7 februarie 2012 16:05:53
Problema Carnati Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
struct carnat{
    int t,p;
};

bool cmp(carnat x, carnat y){
    return x.t<y.t;}

carnat v[2012];
int n,C,maxt;
int profitt(int pret)
{
    int i,profit=0,sol=0;
    for(i=1;i<=n;i++)
    {
        if(i>1) profit-=(v[i].t-v[i-1].t-1)*C;
        if(profit<0)
            profit=0;
        if(v[i].p>=pret)
            profit+=pret;
        profit-=C;
        if(profit>sol)
            sol=profit;
    }
    return sol;
}
int main()
{
    freopen("carnati.in","r",stdin);
    freopen("carnati.out","w",stdout);
    int i,sol=0,pret,x;
    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++)
    {
        pret=profitt(v[i].p);
        if(pret>sol)
            sol=pret;
    }
    printf("%d",sol);
    return 0;
}