Pagini recente » Cod sursa (job #457304) | Cod sursa (job #792510) | Cod sursa (job #975954) | Cod sursa (job #793659) | Cod sursa (job #1356059)
#include<fstream>
#include<algorithm>
#define t first
#define p second
using namespace std;
int n, i, j, maxim, x, pr, c;
int a[2001];
pair<int, int> v[2001];
ifstream fin("carnati.in");
ofstream fout("carnati.out");
int main(){
fin>> n >> c;
for(i = 1; i <= n; i++){
fin>> v[i].t >> v[i].p;
}
sort(v + 1, v + n + 1);
maxim = -1000000;
for(j = 1; j <= n; j++){
x = v[j].p;
if(v[1].p >= x){
pr = x;
}
else{
pr = 0;
}
a[1] = pr - c;
for(i = 2; i <= n; i++){
if(v[i].p >= x){
pr = x;
}
else{
pr = 0;
}
a[i] = max(pr - c, a[i-1] + pr - (v[i].t - v[i-1].t) * c);
}
for(i = 1; i <= n; i++){
maxim = max(maxim, a[i]);
}
}
fout<< maxim <<"\n";
return 0;
}