Pagini recente » Cod sursa (job #310832) | Cod sursa (job #1060617) | Cod sursa (job #1521281) | Cod sursa (job #888819) | Cod sursa (job #368604)
Cod sursa(job #368604)
#include<cstdio>
#include<algorithm>
using namespace std;
struct CARNATI
{int t,p;};
CARNATI v[2010];
int c,n,mmax;
bool comp(const CARNATI &x,const CARNATI &y)
{
return (x.t<y.t);
}
int profit(int i)
{
int pc=0,max=0,j;
if(v[1].p>=v[i].p)
{
max=v[i].p-c;
pc=max;
}
for(j=2;j<=n;++j)
{
pc-=c*(v[j].t-v[j-1].t-1);
if(pc<0)
pc=0;
if(v[j].p>=v[i].p)
pc+=v[i].p;
pc-=c;
if(pc>max)
max=pc;
}
return max;
}
int main()
{
freopen("carnati.in","r",stdin);
freopen("carnati.out","w",stdout);
scanf("%d%d",&n,&c);
int i,x;
for(i=1;i<=n;i++)
{
scanf("%d%d",&v[i].t,&v[i].p);
}
sort(v+1,v+n+1,comp);
mmax=0;
for(i=1;i<=n;i++)
{
x=profit(i);
if(mmax<x)
mmax=x;
}
printf("%d",mmax);
return 0;
}