Pagini recente » Cod sursa (job #363009) | Cod sursa (job #2246019) | Cod sursa (job #2288948) | Cod sursa (job #542934) | Cod sursa (job #2012101)
#include <cstdio>
#include <algorithm>
using namespace std;
const int nmax=2030;
int t[nmax],p[nmax],dyn[nmax];
int n,c;
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",&t[i],&p[i]);
int sol=0;
for(int j=1;j<=n;j++)
{
int mij=p[j];
for(int i=1;i<=n;i++)
{
if(mij<=p[i]) dyn[t[i]]+=mij;
}
dyn[0]-=c;
sol=max(sol,dyn[0]);
for(int i=1;i<=1500;i++)
{
dyn[i]+=max(dyn[i-1],0);
dyn[i]-=c;
sol=max(sol,dyn[i]);
}
// if(j==1) for(int i=0;i<=20;i++) printf("%d ",dyn[i]);
for(int i=0;i<=1500;i++) dyn[i]=0;
// printf("%d %d\n",p[j],sol);
}
printf("%d\n",sol);
}