Pagini recente » Cod sursa (job #2459516) | Cod sursa (job #2655334) | Cod sursa (job #2003209) | Cod sursa (job #233927) | Cod sursa (job #1259083)
#include <stdio.h>
long long max(long long a,long long b)
{
if(a>b) return a;
return b;
}
long long n;
long long p,old,maxs,news;
struct str
{
long c,t;
}v[2001];
bool cmp(str &a,str&b)
{
return a.t<b.t;
}
int main()
{
FILE*f =fopen("carnati.in","r");
fscanf(f,"%d%d",&n,&p);
for(int i = 0 ;i<n;i++)
fscanf(f,"%d%d",&v[i].t,&v[i].c);
fclose(f);
long y = 0;
for(int i = 0 ;i<n;i++)
{
old = news = 0;
for(int j = 0 ;j<n;j++)
{
if(v[j].c>=v[i].c) y = v[i].c;
else y = 0;
news = old -(v[j].t-v[j-1].t)*p+y;
if(news < y-p) news = y-p;
if(news >= maxs) maxs = news;
old = news;
}
}
FILE * g = fopen("carnati.out","w");
fprintf(g,"%d",maxs);
fclose(g);
return 0;
}