Pagini recente » Cod sursa (job #638081) | Cod sursa (job #714543) | Cod sursa (job #265513) | Cod sursa (job #1661040) | Cod sursa (job #180300)
Cod sursa(job #180300)
#include<stdio.h>
#include<algorithm>
#define MAXN 10000
using namespace std;
struct om{int t,p;} v[MAXN];
int i,j,n,c,pr,prmax,max,g,sol=-MAXN;
int a[MAXN];
bool comp(const om &a,const om &b)
{
return a.t<b.t;
}
int main(void)
{
freopen("carnati.in","r",stdin);
freopen("carnati.out","w",stdout);
scanf("%d%d",&n,&c);
for(i=1;i<=n;i++)
{
scanf("%d%d",&v[i].t,&v[i].p);
if(v[i].p>prmax)
prmax=v[i].p;
}
sort(v+1,v+n+1,comp);
for(pr=1;pr<=prmax;pr++)
for(i=1;i<=n;i++)
{
if(v[i].p>=pr)
g=pr;
else
g=0;
a[i]=a[i-1]-(v[i].t-v[i-1].t)*c+g;
if(g-c>a[i])
a[i]=g-c;
if(a[i]>sol)
sol=a[i];
}
printf("%d\n",sol);
return 0;
}