Pagini recente » Cod sursa (job #2484763) | Cod sursa (job #2810958) | Cod sursa (job #1366135) | Cod sursa (job #2148327) | Cod sursa (job #142656)
Cod sursa(job #142656)
#include<stdio.h>
#define N 2000
int n,i,j,p[N],t[N],c,min,max=0,a[1000],x,y,g,s[N];
void sort(){
for(i=0;i<n-1;++i){
min=i;
for(j=i+1;j<n;++j)
if(t[j]<t[min])
min=j;
if(min!=i){
t[x]=t[i];
t[i]=t[min];
t[min]=t[x];
p[x]=p[i];
p[i]=p[min];
p[min]=p[x];
}
}
}
int maxim(int x,int y){
if(x>y)
return x;
return y;
}
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",&t[i],&p[i]);
sort();
for(j=1;j<=n;++j)
for(i=1;i<=n;++i){
g=0;
if(p[i]>=p[j])
g=p[j];
if(i%2==0)
a[i]=g-c;
else
a[i]=-(t[i]-t[i-1])*c;
}
s[0]=0;
for(i=1;i<n;++i){
s[i]=s[i-1]+a[i];
for(j=1;j<i;++j){
if(s[i]-s[j]>max)
max=s[i]-s[j];
}
}
printf("%d\n",max);
fclose(stdin);
fclose(stdout);
return 0;
}