Cod sursa(job #1297884)

Utilizator ade_tomiEnache Adelina ade_tomi Data 22 decembrie 2014 13:37:33
Problema Carnati Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<algorithm>
#include<stdio.h>
using namespace std;
int sol,pret,nr,cost,i,j,n;
struct str
{
    int t,c;
};
str v[2004];
bool sortare(str a,str b)
{
    return a.t<b.t;
}
int last,sum;
int main()
{
    freopen("carnati.in","r",stdin);
    freopen("carnati.out","w",stdout);
    scanf("%d%d",&n,&cost);
    for(i=1;i<=n;i++)
        scanf("%d%d",&v[i].t,&v[i].c);
    sort(v+1,v+1+n,sortare);
   // for(i=1;i<=n;i++)
     //   printf("%d %d\n",v[i].t,v[i].c);
     for(i=1;i<=n;i++)
    {
        pret=v[i].c;
        sum=0;
        for(j=1;j<=n;j++)
        {
            if(sum==0)
                last=v[j].t;
            if(v[j].c>=pret)
                sum+=pret;
            if(sum-(v[j].t-last+1)*cost<=0)
            {
                if(v[j].c<pret)
                     sum=0;
                else sum=pret;
                last=v[j].t;
                if(sum-cost<0)
                    sum=0;
            }
            if(sum-(v[j].t-last+1)*cost>sol)
                sol=sum-(v[j].t-last+1)*cost;
             
            
        }
        
    }
    printf("%d",sol);
    return 0;
}