Pagini recente » Cod sursa (job #132992) | Cod sursa (job #1092145) | Monitorul de evaluare | Cod sursa (job #2233744) | Cod sursa (job #2990914)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("carnati.in");
ofstream out("carnati.out");
int d[2005];
struct cel
{
int timp;
int pret;
}v[2005];
bool cmp(cel a, cel b)
{
return a.timp<b.timp;
}
int main()
{
int n,c;
int Max=0;
in>>n>>c;
for(int i=1; i<=n; i++)
{
in>>v[i].timp>>v[i].pret;
}
sort(v+1, v+n+1, cmp);
for(int i=1; i<=n; i++)
{
int x=v[i].pret;
for(int j=1; j<=n; j++)
{
if(v[j].pret>=x)
d[j]=max((d[j-1]-c*(v[j].timp-v[j-1].timp)+x),x-c);
else
d[j]=max((d[j-1]-c*(v[j].timp-v[j-1].timp)),-c);
}
int maxim=d[1];
for(int j=2; j<=n; j++)
if(maxim<d[j])
maxim=d[j];
Max=max(Max,maxim);
}
out<<Max;
return 0;
}