Pagini recente » Cod sursa (job #3266417) | Cod sursa (job #2319491) | Cod sursa (job #1906068) | Cod sursa (job #861274) | Cod sursa (job #550802)
Cod sursa(job #550802)
#include<stdio.h>
#include<algorithm>
#define Nmax 2010
#define Max(a,b) a > b ? a : b
using namespace std ;
int A[Nmax] ;
int i,X,sol,n,C,x,best,add;
struct client { int T,P ; } v[Nmax] ;
int cmp ( client a, client b )
{
return a.T < b.T ;
}
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",&v[i].T,&v[i].P);
sort(v+1,v+n+1,cmp);
for( x = 1 ; x <= n ; x++ )
{
X = v[x].P ; add = 0 ;
if( v[1].P >= X ) add = X ;
A[1] = add - C ; best = 0 ;
for( i = 2 ; i <= n ; i++ )
{
add = 0 ;
if( v[i].P >= X ) add = X ;
A[i] = Max( A[i-1] - (v[i].T - v[i-1].T) * C + add, add - C ) ;
if( A[i] > best ) best = A[i] ;
}
if( best > sol ) sol = best ;
}
printf("%d",sol);
return 0;
}