Pagini recente » Cod sursa (job #443779) | Cod sursa (job #2241796) | Cod sursa (job #2291888) | Cod sursa (job #665372) | Cod sursa (job #1645003)
#include <cstdio>
#include <algorithm>
using namespace std;
int n,c,i,nrcrt,x,G,bst[2005],maximul;
struct client
{
int t,p;
};
client a[2005];
bool cmp(client a, client b)
{
return a.t<=b.t;
}
int main()
{
freopen("carnati.in","r",stdin);
freopen("carnati.out","w",stdout);
scanf("%d%d",&n,&c);
for (i=1; i<=n; i++)
scanf("%d%d",&a[i].t,&a[i].p);
sort(a+1,a+n+1,cmp);
for (nrcrt=1; nrcrt<=n; nrcrt++)
{
x=a[nrcrt].p;
if (x<=a[1].p) bst[1]=max(0,x-c); else bst[1]=0;
if (bst[1]>maximul) maximul=bst[1];
for (i=2; i<=n; i++)
{
if (a[i].p>=x) G=x; else G=0;
bst[i]=max(max(bst[i-1]-(a[i].t-a[i-1].t)*c+G,G-c),0);
if (bst[i]>maximul) maximul=bst[i];
}
}
printf("%d\n",maximul);
return 0;
}