Pagini recente » Cod sursa (job #1686425) | Cod sursa (job #2807637) | Cod sursa (job #1192784) | Cod sursa (job #1667019) | Cod sursa (job #138388)
Cod sursa(job #138388)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
const char iname[] = "carnati.in";
const char oname[] = "carnati.out";
#define MAXN 2005
int n, cph;
int C[MAXN];
vector <pair <int, int> > A;
int main(void)
{
FILE *fi;
fi = fopen(iname, "r");
fscanf(fi, "%d %d", &n, &cph);
A.resize(n);
for (int i = 0; i < n; ++ i)
fscanf(fi, "%d %d", &A[i].first, &A[i].second);
sort(A.begin(), A.end());
int res = 0;
for (int i = 0; i < n; ++ i)
{
int X = A[i].second;
for (int j = 0; j < n; ++ j)
{
C[j] = ((X <= A[j].second) ? X : 0) - cph;
if (j > 0)
{
int tmp = C[j - 1] - (A[j].first - A[j - 1].first) * cph + ((X <= A[j].second) ? X : 0);
if (C[j] < tmp)
C[j] = tmp;
}
if (res < C[j])
res = C[j];
}
}
fprintf(fopen(oname, "w"), "%d\n", res);
fcloseall();
return 0;
}