Pagini recente » Cod sursa (job #1030104) | Cod sursa (job #2619338) | Solutii preONI 2007, Runda 3 | Cod sursa (job #3289202) | Cod sursa (job #1890760)
#include<cstdio>
#include<algorithm>
using namespace std;
int d[2001],vec[2001];
struct aa{int x,y;};
aa v[2001];
bool sortare(aa a,aa b)
{if(a.x<b.x||(a.x==b.x&&a.y<b.y))
return 1;
return 0;
}
int main ()
{freopen ("carnati.in","r",stdin);
freopen ("carnati.out","w",stdout);
int n,c,i,j,mx,mxx,k,x;
scanf("%d%d",&n,&c);
for(i=1;i<=n;i++)
scanf("%d%d",&v[i].x,&v[i].y);
sort(v+1,v+n+1,sortare);
mxx=0;
for(i=1;i<=n;i++)
{k=v[i].y;
x=0;
for(j=1;j<=n;j++)
if(v[j].y>=k)
{x++;
vec[x]=v[j].x;
}
for(j=1;j<=x;j++)
d[j]=max(k,d[j-1]+k-c*(vec[j]-vec[j-1]));
mx=0;
for(j=1;j<=x;j++)
if(d[j]>mx)
mx=d[j];
if(mx>mxx)
mxx=mx;
}
printf("%d",mxx-c);
return 0;
}