Pagini recente » Cod sursa (job #232203) | Cod sursa (job #1597937) | Cod sursa (job #900614) | Cod sursa (job #1717804) | Cod sursa (job #844528)
Cod sursa(job #844528)
#include <stdio.h>
#include <algorithm>
using namespace std;
int n=0,c=0;
struct str
{
int t,p;
};
str v[2005];
bool comp(str x,str y)
{
return x.t<y.t;
}
int gain(int value, int k)
{
int i=1,gmax=-1,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=-1,max=-1;
freopen("carnati.in","r",stdin);
freopen("carnati.out","w",stdout);
scanf("%d%d",&n,&c);
for (i=1; i<=n; ++i)
scanf("%d%d",&v[i].t,&v[i].p);
v[0].t=-1;
sort(v+1,v+n+1,comp);
for (i=1; i<=n; ++i)
{
nr=gain(v[i].p,i);
if (nr>max)
max=nr;
}
printf("%d",max);
return 0;
}