Pagini recente » Cod sursa (job #2765484) | Cod sursa (job #2445618) | Borderou de evaluare (job #1008051) | Cod sursa (job #1423976) | Cod sursa (job #138848)
Cod sursa(job #138848)
#include<stdio.h>
#include<algorithm>
using namespace std;
#define lg 2005
#define pretmax 1000000000
int n, c, i, raspuns;
struct ches{
int t, c;
};
ches v[lg];
inline int cmp(ches a, ches b){
return (a.t < b.t);
}
void check(int val){
int i, st = 0, rz = 0, fs = 0;
st = v[1].t-1;
for (i = 1; i <= n; i ++){
if (val <= v[i].c)
rz += val;
else
fs = 1;
rz -= c*(v[i].t - st);
//printf("%d\n", rz);
if (rz > raspuns)
raspuns = rz;
st = v[i].t;
if (rz < 0)
rz = 0, st = v[i+1].t-1;
//printf("%d %d\n\n", rz, st);
}
}
void find(){
int i;
for (i = 1; i <= n; i ++)
check(v[i].c);
}
int main()
{
freopen("carnati.in", "rt", stdin);
freopen("carnati.out", "wt", stdout);
scanf("%d%d", &n, &c);
for (i = 1; i <= n; i ++)
scanf("%d%d", &v[i].t, &v[i].c);
sort(v+1, v+n+1, cmp);
find();
printf("%d\n", raspuns);
return 0;
}