Pagini recente » Cod sursa (job #2124504) | Cod sursa (job #2582261) | Cod sursa (job #2024825) | Cod sursa (job #2943968) | Cod sursa (job #1258920)
#include <stdio.h>
long abs(long n)
{
if(n<0) return -n;
return n;
}
int n,t[2001];
long c[2001],p,old,maxs,news;
void sorts()
{
int inv ,aux;
long aux2;
do
{
inv = 0;
for(int i = 0 ;i <n-1;i++)
if(t[i]>t[i+1])
{
inv =1;
aux = t[i];
t[i] = t[i+1];
t[i+1] = aux;
aux2 = c[i];
c[i] = c[i+1];
c[i+1] = aux2;
}
}while(inv);
}
int main()
{
FILE*f =fopen("carnati.in","r");
fscanf(f,"%d%d",&n,&p);
for(int i = 0 ;i<n;i++)
fscanf(f,"%d%d",&t[i],&c[i]);
fclose(f);
sorts();
for(int i = 0 ;i<n;i++)
{
old = news = 0;
for(int j = 0 ;j<n;j++)
{
if(c[j]>=c[i])
news = old -(abs(t[j]-t[i]))*p+c[i];
//if(news <= c[i]-p) news = c[i]-p;
if(news >= maxs) maxs = news;
old = news;
}
}
FILE * g = fopen("carnati.out","w");
fprintf(g,"%d",maxs-p);
fclose(g);
return 0;
}