Pagini recente » Cod sursa (job #2509508) | Cod sursa (job #1890090) | Cod sursa (job #1547321) | Cod sursa (job #2042136) | Cod sursa (job #490853)
Cod sursa(job #490853)
#include<stdio.h>
#include<algorithm>
using namespace std;
int sal,n;
const int N=1501;
const int inf=1000000000;
struct client
{
int t,p;
};
client v[N];
int val(int pret)
{
int i,sc,smax,u,deficit;
sc=0;
smax=-inf;
u=-1;
for(i=1;i<=n;++i)
{
if(v[i].p<pret)
continue;
if(u!=-1)
deficit =(v[i].t-u-1)*sal;
else
deficit=0;
if(sc<deficit)
sc=0;
else
sc-=deficit;
sc=pret+sc-sal;
if(sc>smax)
smax=sc;
u=v[i].t;
}
return smax;
}
bool comp(client x,client y)
{
return x.t<y.t;
}
int main()
{
int i,max=-inf,x;
freopen("carnati.in","r",stdin);
freopen("carnati.out","w",stdout);
scanf("%d%d",&n,&sal);
for(i=1;i<=n;++i)
scanf("%d%d",&v[i].t,&v[i].p);
sort(&v[1],&v[1+n],comp);
for(i=1;i<=n;++i)
{
x=val(v[i].p);
if(max<x) max=x;
}
printf("%d",max);
}