Pagini recente » Cod sursa (job #829805) | Cod sursa (job #3310117) | Cod sursa (job #471070) | Cod sursa (job #3354914) | 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;
}