Pagini recente » Cod sursa (job #716876) | Cod sursa (job #1876248) | Cod sursa (job #1311066) | Cod sursa (job #1909807) | Cod sursa (job #269643)
Cod sursa(job #269643)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define FIN "carnati.in"
#define FOUT "carnati.out"
#define NMAX 1000
int N,C;
int P[NMAX],T[NMAX];
int X,Y;
int i,ii;
int G;
long int REZ;
int max(int a, int b)
{
if (a>b)
return a;
else
return b;
}
void read_data()
{
freopen(FIN,"rt",stdin);
scanf("%d %d", &N, &C);
for (i=1;i<=N;++i)
scanf("%d %d", &T[i], &P[i]);
sort(T+1,T+N+1);
}
void solve()
{
for (i=1;i<=N;++i)
{
X=0;
for (ii=1;ii<=N;++ii)
{
if (P[ii]<P[i])
G=0;
else
G=P[i];
Y=G+X-(T[ii]-T[ii-1])*C;
Y=max(Y,G-C);
if (Y>REZ)
REZ=Y;
X=Y;
}
}
}
void write_data()
{
freopen(FOUT,"wt",stdout);
printf("%ld", REZ);
}
int main()
{
read_data();
solve();
write_data();
return 0;
}