Pagini recente » Istoria paginii runda/antr9-oji/clasament | Cod sursa (job #2739185) | Cod sursa (job #975555) | Cod sursa (job #3239878) | Cod sursa (job #1357292)
#include <cstdio>
#include <algorithm>
#define Nmax 2005
#define INF 2000000000
using namespace std;
struct el
{
int t,p;
bool operator <(const el &A) const
{
return p<A.p;
}
} a[Nmax];
int cnt[Nmax],n,c;
int main()
{
int i,j,ans=-INF,maxim,P;
freopen ("carnati.in","r",stdin);
freopen ("carnati.out","w",stdout);
scanf("%d%d", &n,&c);
for(i=1;i<=n;++i) scanf("%d%d", &a[i].t,&a[i].p);
sort(a+1,a+n+1);
for(i=n;i;--i)
{
P=a[i].p;
for(j=a[i].t;j<=1500;++j) ++cnt[j];
maxim=-INF;
for(j=0;j<=1500;++j)
{
if(j)
maxim=max(maxim,j*c-cnt[j-1]*P);
else
maxim=max(maxim,j*c);
ans=max(ans,cnt[j]*P-(j+1)*c+maxim);
}
}
printf("%d\n", ans);
return 0;
}