Pagini recente » Cod sursa (job #25898) | Cod sursa (job #2324271) | Cod sursa (job #2142644) | Cod sursa (job #467519) | Cod sursa (job #172590)
Cod sursa(job #172590)
#include <stdio.h>
#include <stdlib.h>
struct ab{
int a,b;
};
ab v[2001];
int comp(const void *a,const void *b){
ab *aa=(ab*)a,*bb=(ab*)b;
ab aaa=*aa,bbb=*bb;
if(aaa.a>bbb.a) return 1;
if(aaa.a==bbb.a && aaa.b<bbb.b) return -1;
if(aaa.a<bbb.a) return -1;
return 0;
}
int main(){
int i,n,c,s,max=-2000000000,j,poz;
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].a,&v[i].b);
v[0].a=v[0].b=-10;
qsort(v,n+1,sizeof(v[0]),comp);
v[0].a=v[0].b=0;
// for(i=1;i<=n;i++)
// printf("%d %d\n",v[i].a,v[i].b);
for(i=1;i<=n;i++){
s=0;
poz=1;
for(j=1;j<=n;j++){
if(v[j].b>=v[i].b) s+=v[i].b;
if(s-( v[j].a - v[poz].a + 1)*c>max)
max=s-(v[j].a-v[poz].a+1)*c;
if(s-(v[j].a-v[poz].a+1)*c<0) { s=0; poz=j+1; }
}
}
printf("%d",max);
}