Pagini recente » Cod sursa (job #2744776) | Cod sursa (job #416379) | Cod sursa (job #581890) | Cod sursa (job #2784073) | Cod sursa (job #1357468)
#include<stdio.h>
#include<algorithm>
#define MAXN 2015
FILE *f=fopen("carnati.in","r"), *g=fopen("carnati.out","w");
using namespace std;
long int N, C, A[MAXN], CMax=0;
struct Date{ long int t, p; } v[MAXN];
bool cmp( Date Q, Date W ){ if( Q.t < W.t ) return 1; return 0; }
void Citire(){
long int i;
fscanf(f,"%ld %ld\n",&N,&C);
for(i=1;i<=N;i++) fscanf(f,"%ld %ld\n",&v[i].t,&v[i].p);
sort(v+1,v+N+1,cmp);
}
long int R ( long int P ){ // P = pretul afisat
long int i, Pf, Maxim = 0;
for(i=1;i<=N;i++){
if( P <= v[i].p ) Pf = P; else Pf = 0;
if( i >= 2 ) A[i] = max( A[i-1] - (v[i].t-v[i-1].t)*C + Pf , Pf - C );
else A[1] = Pf - C;
Maxim = max ( Maxim, A[i] );
}
return Maxim;
}
int main(){
Citire();
for(long int I=1;I<=N;I++) CMax = max( CMax, R(v[I].p) );
fprintf(g,"%ld\n",CMax);
return 0;
}