Pagini recente » Cod sursa (job #51990) | Cod sursa (job #1421918) | Cod sursa (job #968829) | Cod sursa (job #1801779) | Cod sursa (job #1897149)
#include <cstdio>
using namespace std;
struct me{int t;int p;};
struct me2{int t;int v;};
me v[2001];
int smax(int p,int n,int c)
{
int i,x;
me2 d[2001];
for(i=1;i<=n;i++)
{
if(v[i].p>=p)
x=p;
else x=0;
if(d[i-1].v+x-(v[i].t-d[i-1].t)*c>=x-c)
d[i].v=d[i-1].v+x-(v[i].t-d[i-1].t)*c,d[i].t=v[i].t;
else d[i].v=x-c,d[i].t=v[i].t;
}
int mx=-1;
for(i=1;i<=n;i++)
if(d[i].v>mx)
mx=d[i].v;
return mx;
}
int main()
{
freopen("carnati.in","r",stdin);
freopen("carnati.out","w",stdout);
int n,c,p,i,mx=-1;
scanf("%d%d",&n,&c);
for(i=1;i<=n;i++)
scanf("%d%d",&v[i].t,&v[i].p);
for(i=1;i<=n;i++)
{
p=v[i].p;
if(mx<smax(p,n,c))
mx=smax(p,n,c);
}
printf("%d",mx);
return 0;
}