Pagini recente » Rating Tamas Vlad (vlad_153) | Cod sursa (job #952857) | Cod sursa (job #1235535) | Cod sursa (job #2477322) | Cod sursa (job #147752)
Cod sursa(job #147752)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 2001
#define MAXT 1501
struct carnat
{
int p,t;
};
carnat v[MAXN];
int V[MAXN],max=0,n=0,c=0;
int cmp(const void *a, const void *b)
{
carnat x=*(carnat*)a,y=*(carnat*)b;
return x.t-y.t;
}
int main()
{
FILE *in = fopen("carnati.in","r");
FILE *out = fopen("carnati.out","w");
int i,j,k,x;
fscanf(in,"%d%d",&n,&c);
for (i=0; i<n; i++)
fscanf(in,"%d%d",&v[i].t,&v[i].p);
qsort(v,n,sizeof(v[0]),cmp);
if (v[0].t>=v[i].t)
k=v[i].t;
else
k=0;
V[0]=k-c;
max=V[0];
for (i=0; i<n; i++)
{
x=v[i].p;
if (v[0].p>=x)
k=v[i].p;
else
k=0;
V[0]=k-c;
if (V[0]>max)
max=V[0];
for (j=1; j<n; j++)
{
if (v[j].p>=x)
k=v[i].p;
else
k=0;
V[j]=k-c;
if (V[j-1]-(v[j].t-v[j-1].t)*c+k>V[j])
V[j]=V[j-1]-(v[j].t-v[j-1].t)*c+k;
if (V[j]>max)
max=V[j];
}
}
fprintf(out,"%d\n",max);
fclose(in);
fclose(out);
return 0;
}