Pagini recente » Cod sursa (job #296767) | Cod sursa (job #931356) | Cod sursa (job #1129073) | Cod sursa (job #734125) | Cod sursa (job #137222)
Cod sursa(job #137222)
#include<stdio.h>
#include<stdlib.h>
FILE*f=fopen("carnati.in","r");
FILE*g=fopen("carnati.out","w");
typedef struct
{
int p,t;
}Client;
int n,c,max,pret;
Client x[2004],a[2002];
int cmp(const void*a, const void*b)
{
return x[*(int*)a].t-x[*(int*)b].t;
}
void read()
{
fscanf(f,"%d %d",&n,&c);
int i;
int h[2003];
for(i=1;i<=n;++i)
{
fscanf(f,"%d %d",&x[i].t,&x[i].p);
h[i]=i;
}
qsort(h,n+1,sizeof(int),cmp);
for(i=1;i<=n;++i) a[i]=x[h[i]];
}
void solve()
{
int cc,pr,l,i,j,k;
for(i=1;i<=n;++i)
{
for(j=i;j>0;--j)
{
cc=0;
if(a[j].p>=a[i].p)
{
cc+=a[i].p;
for(k=j+1;k<=n;++k)
{
if(a[k].p>=a[i].p)
{
cc+=a[i].p;
l=a[k].t-a[j].t+1;
pr=cc-c*l;
if(max<pr) max=pr;
}
}
}
}
}
}
int main()
{
read();
solve();
if(0>max) max=0;
fprintf(g,"%d\n",max);
return 0;
}