Pagini recente » Cod sursa (job #3220996) | Cod sursa (job #1308185) | Cod sursa (job #2789309) | Cod sursa (job #2637956) | Cod sursa (job #300899)
Cod sursa(job #300899)
#include<fstream.h>
long long p[2005],t[2005],pret[2005],best[2005];
int main()
{
long long max,s,n,i,j,c;
ifstream f("carnati.in");
f>>n>>c;
for (i=1;i<=n;i++)
f>>t[i]>>p[i];
best[1]=p[1]-c;
pret[1]=p[1];
for (i=2;i<=n;i++)
{
best[i]=p[i]-c;
pret[i]=p[i];
for (j=1;j<i;j++)
if (pret[j]<=p[i])
if (best[j]+pret[j]-c*(t[i]-t[j])>best[i]) {
best[i]=best[j]+pret[j]-c*(t[i]-t[j]);
pret[i]=pret[j];
}
max=p[i]-c;
s=max;
for (j=i-1;j>=1;j--)
if (p[j]>p[i]) {
s=s+p[i];
if (s-(t[i]-t[j])*c>max ) max=s-c*(t[i]-t[j]);
}
if (max>best[i]) {
best[i]=max;
pret[i]=p[i];
}
}
max=best[1];
for (i=2;i<=n;i++)
if (max<best[i]) max=best[i];
ofstream g("carnati.out");
g<<max;
g.close();
f.close();
return 0;
}