Pagini recente » Cod sursa (job #210338) | Cod sursa (job #668574) | Cod sursa (job #1223180) | Cod sursa (job #1451496) | Cod sursa (job #315384)
Cod sursa(job #315384)
#include <algorithm>
#define DIM 2005
#define INF 1<<31-1
using namespace std;
struct carnat {int t,p;} a[DIM];
int b[DIM];
int n,c,best;
void read ()
{
int i;
scanf ("%d%d",&n,&c);
for (i=1; i<=n; ++i)
scanf ("%d%d",&a[i].t,&a[i].p);
}
int cmp (carnat a,carnat b)
{
return a.t<b.t;
}
int max (int a,int b)
{
if (a>b)
return a;
return b;
}
void solve ()
{
int i,j;
for (i=1; i<=n; ++i)
{
b[0]=-c;
for (j=1; j<=n; ++j)
{
if (a[i].p<=a[j].p)
b[j]=max (b[j-1]-(a[j].t-a[j-1].t)*c+a[i].p,a[i].p-c);
else
b[j]=max (b[j-1]-(a[j].t-a[j-1].t)*c,-c);
if (b[j]>best)
best=b[j];
}
}
printf ("%d",best);
}
int main ()
{
freopen ("carnati.in","r",stdin);
freopen ("carnati.out","w",stdout);
read ();
// sort (a+1,a+n+1,cmp);
solve ();
return 0;
}