Pagini recente » Cod sursa (job #3288542) | Cod sursa (job #1986306) | Cod sursa (job #1355548) | Cod sursa (job #1463643) | Cod sursa (job #843306)
Cod sursa(job #843306)
#include <cstdio>
#include <cassert>
#include <algorithm>
#define dim 2005
using namespace std;
int n=0,c=0;
struct str
{
int t,p;
};
str v[dim];
bool comp(str x,str y)
{
return x.t<y.t;
}
int gain(int value, int k)
{
int i=1,gmax=0,s=0,ind=0;
for(i=1; i<=n; ++i)
{
if (v[i].p<value)
continue;
s=s-c*(v[i].t-v[ind].t-1);
ind=i;
if (s<0)
s=0;
s=s+value-c;
if (s>gmax)
gmax=s;
}
return gmax;
}
int main()
{
int i=0,nr=0,max=0;
assert(freopen("carnati.in","r",stdin));
assert(freopen("carnati.out","w",stdout));
assert(scanf("%d%d",&n,&c));
for (i=1; i<=n; ++i)
assert(scanf("%d%d",&v[i].t,&v[i].p));
sort(v+1,v+n+1,comp);
for (i=1; i<n+1; ++i)
{
nr=gain(v[i].p,i);
if (nr>max)
max=nr;
}
assert(printf("%d\n",max));
return 0;
}