Pagini recente » Cod sursa (job #896912) | Cod sursa (job #1807162) | Cod sursa (job #2197825) | Cod sursa (job #93895) | Cod sursa (job #1884266)
#include <cstdio>
#include <algorithm>
using namespace std;
pair <int, int> v[2100];
int n, c;
int pmax(int k);
int main()
{
FILE *in(fopen("carnati.in", "r")), *out(fopen("carnati.out", "w"));
fscanf(in, "%d%d", &n, &c);
for (int i(1); i <= n; i++)
fscanf(in, "%d%d", &v[i].first, &v[i].second);
sort(v + 1, v + n + 1);
int maxim(0);
for (int i(1); i <= n; i++) {
int x(pmax(v[i].second));
if (maxim < x)
maxim = x;
}
fprintf(out, "%d", maxim);
return 0;
}
int pmax(int k)
{
int best(0);
if (v[1].second >= k)
best = k - c;
int l(best);
for (int i(2); i <= n; i++) {
l -= c * (v[i].first - v[i - 1].first);
if (v[i].second >= k)
l += k;
if (k - c > l && v[i].second >= k)
l = k - c;
if (l > best)
best = l;
}
return best;
}