Pagini recente » Cod sursa (job #3361580) | Cod sursa (job #3361820) | Cod sursa (job #3361473) | Cod sursa (job #3362095) | Cod sursa (job #3361472)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("carnati.in");
ofstream cout("carnati.out");
struct om{
int t, p;
};
om v[2005];
bool cmp(om a, om b){
if(a.t < b.t)
return true;
else
return false;
}
int main() {
int n, c, s = 0, maxim = -2000000000, scadere = c, cj = 1;
cin >> n >> c;
bool newstart = true;
for(int i = 1; i <= n; i++){
cin >> v[i].t >> v[i].p;
}
sort(v+1, v+n+1, cmp);
for(int i = 1; i <= n; i++){
s = 0;
scadere = c;
newstart = true;
for(int j = 1; j <= n; j++){
if(newstart != true)
scadere = (v[j].t - v[j-1].t)*c;
else
scadere = c;
newstart = false;
s -= scadere;
if(v[j].p >= v[i].p)
s+=v[i].p;
if(s > maxim)
maxim = s;
if(s < 0){
s = 0;
newstart = true;
}
}
}
cout << maxim;
return 0;
}