Pagini recente » Cod sursa (job #1604871) | Cod sursa (job #2331929) | Cod sursa (job #2114157) | Cod sursa (job #693607) | Cod sursa (job #1744431)
#include <cstdio>
#include <algorithm>
int pr[2001], tp[2001];
struct date
{
int t;
int p;
} v[2001];
using namespace std;
bool cmp( date a, date b )
{
return a.t<b.t;
}
int main()
{
freopen( "carnati.in", "r", stdin );
freopen( "carnati.out", "w", stdout );
int n, c, i, j, k, mp=0;
scanf( "%d%d", &n, &c );
for( i=1;i<=n;i++ )
scanf( "%d%d", &v[i].t, &v[i].p );
sort(v+1,v+n+1,cmp);
for( i=1;i<=n;i++ )
for( j=1;j<=n;j++ )
{
if( v[j].p>=v[i].p )
k=v[i].p;
else
k=0;
if( k-c<(k+pr[j-1])-(v[j].t-tp[j-1]+1)*c )
{
pr[j]=pr[j-1]+k;
tp[j]=tp[j-1];
}
else
{
pr[j]=k;
tp[j]=v[j].t;
}
if( mp<pr[j]-(v[j].t-tp[j]+1)*c )
mp=pr[j]-(v[j].t-tp[j]+1)*c;
}
printf( "%d", mp );
return 0;
}