Pagini recente » Cod sursa (job #1459110) | Cod sursa (job #872486) | Cod sursa (job #165138) | Cod sursa (job #3278021) | Cod sursa (job #1475926)
#include <iostream>
#include <fstream>
#include <utility>
#include <algorithm>
using namespace std;
ifstream fin("carnati.in");
ofstream fout("carnati.out");
const int NMax = 2005;
int D[NMax];
pair < int, int > v[NMax];
int main(){
int n, c, p, t, value, ans, x;
fin >> n >> c;
for(int i = 1; i <= n; i++){
fin >> t >> p;
v[i] = make_pair(t, p);
}
sort(v + 1, v + n + 1);
ans = 0;
v[0].first = v[0].second = -NMax;
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
x = v[i].second;
if(v[j].second < x){
x = 0;
}
value = D[j - 1] - (v[j].first - v[j - 1].first) * c + x;
D[j] = max(value, x - c);
ans = max(ans, D[j]);
}
}
fout << ans;
return 0;
}