Pagini recente » simulare_radu | Cod sursa (job #706671) | Cod sursa (job #1882371) | Cod sursa (job #3150645) | Cod sursa (job #464595)
Cod sursa(job #464595)
#include <cstdio>
int t[2001],p[2001];
int main()
{
long long j,n,i,maxdr,maxst,max=0,c;
freopen("carnati.in","r",stdin);
scanf("%d %d",&n,&c);
for (i=1;i<=n;++i) scanf("%d %d",&t[i],&p[i]);
for (i=1;i<=n;++i)
{
long long mx=p[i]-c,nr=0;
maxst=maxdr=0;
for (j=i-1;j>0;--j)
if (p[j]>=p[i])
{++nr;
if (nr*p[i]-(t[i]-t[j])*c>maxst) maxst=nr*p[i]-(t[i]-t[j])*c;
}
nr=0;
for (j=i+1;j<=n;++j)
if (p[j]>=p[i])
{++nr;
if (nr*p[i]-(t[j]-t[i])*c>maxdr) maxdr=nr*p[i]-(t[j]-t[i])*c;
}
if (mx+maxst+maxdr>max) max=mx+maxst+maxdr;
}
freopen("carnati.out","w",stdout);
printf("%d",max);
return 0;}