Pagini recente » Cod sursa (job #1395646) | Cod sursa (job #2878174) | Cod sursa (job #1606582) | Cod sursa (job #1523911) | Cod sursa (job #812346)
Cod sursa(job #812346)
#include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std;
struct sp
{
int t,p;
} v[2100];
int n,cate;
int c;
bool cmp(sp a, sp b)
{
return a.t<b.t;
}
int maxf;
int minn,maxx;
int act[1510];
int main()
{
freopen("carnati.in","r",stdin);
freopen("carnati.out","w",stdout);
scanf("%d%d",&n,&c);
for(int i=1; i<=n; i++)
{
scanf("%d%d",&v[i].t,&v[i].p);
}
sort(v+1,v+n+1,cmp);
for(int i=1; i<=n; i++)
{
memset(act,0,sizeof(act));
act[0]=-c;
cate=1;
for(int j=0; j<=v[n].t; j++)
{
if(j!=0)
act[j]=act[j-1]-c;
while(v[cate].t==j)
{
if(v[cate].p>=v[i].p)
{
act[j]+=v[i].p;
}
cate++;
}
}
minn=0;
maxx=0;
for(int j=0;j<=v[n].t;j++)
{
if(act[j]<minn)
minn=act[j];
if(act[j]-minn>maxx)
maxx=act[j]-minn;
}
if(maxx>maxf)
maxf=maxx;
}
printf("%d",maxf);
return 0;
}