Pagini recente » Cod sursa (job #2984832) | Cod sursa (job #2830257) | Cod sursa (job #2340442) | Cod sursa (job #1887305) | Cod sursa (job #1260117)
#include <stdio.h>
#include <algorithm>
long long n;
long long p,old,maxs,news;
struct str
{
long c,t;
}v[2001];
bool cmp(const str &a,const str&b)
{
return a.t<b.t;
}
int main()
{
FILE*f =fopen("carnati.in","r");
fscanf(f,"%d%d",&n,&p);
for(int i = 1 ;i<=n;i++)
fscanf(f,"%d%d",&v[i].t,&v[i].c);
fclose(f);
v[0].t=v[0].c = -10;
std::sort(v+1,v+n+1,cmp);
long y = 0;
for(int i = 1 ;i<=n;i++)
{
old = news = 0;
for(int j = 1 ;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;
}