Pagini recente » Cod sursa (job #308202) | Cod sursa (job #1834449) | Cod sursa (job #1834428) | Cod sursa (job #349897) | Cod sursa (job #3335407)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("carnati.in");
ofstream fout("carnati.out");
#define NMAX 2000
struct carnat{
int t, p;
}v[NMAX + 1];
bool cmp(carnat a, carnat b){
return a.t < b.t;
}
int main()
{
int N, C;
fin >> N >> C;
for (int i = 1; i <= N; i++){
fin >> v[i].t >> v[i].p;
}
sort(v + 1, v + N + 1, cmp);
int smax = 0;
for (int i = 1; i <= N; i++){
int sum = 0, reset = 0;
for (int j = 1; j <= N; j++){
if (reset == 1){
sum -= (v[j].t - v[j - 1].t) * C;
}
else{
sum -= C;
}
sum = max(sum, 0);
reset = 1;
if (v[i].p <= v[j].p){
sum += v[i].p;
}
if (sum == 0){
reset = 0;
}
smax = max(sum, smax);
}
}
fout << smax;
return 0;
}