Pagini recente » Cod sursa (job #2788225) | Cod sursa (job #1579355) | Cod sursa (job #1928800) | Cod sursa (job #501197) | Cod sursa (job #1355738)
#include <fstream>
#include <algorithm>
#define DIM 2005
#define INF 2000000000
#define infile "carnati.in"
#define outfile "carnati.out"
using namespace std;
ifstream f(infile);
ofstream g(outfile);
pair<int, int> v[DIM];
int dp[DIM];
int main() {
int n, c;
f >> n >> c;
for (int i = 1; i <= n; ++i)
f >> v[i].first >> v[i].second;
std::sort(v + 1, v + n + 1);
int ans = -INF;
v[0].first = v[1].first - 1;
for (int step = 1; step <= n; ++step) {
int cost = v[step].second;
for (int i = 1; i <= n; ++i)
dp[i] = std::max(dp[i - 1] - (v[i].first - v[i - 1].first) * c + (cost > v[i].second ? 0 : cost), (cost > v[i].second ? 0 : cost) - c);
for (int i = 1; i <= n; ++i)
ans = std::max(ans, dp[i]);
}
g << ans;
return 0;
}
//Trust me, I'm the Doctor!