Pagini recente » Cod sursa (job #368878) | Cod sursa (job #1868133) | Cod sursa (job #659758) | Cod sursa (job #2474368) | Cod sursa (job #612008)
Cod sursa(job #612008)
#include<cstdio>
#include<utility>
#include<algorithm>
using namespace std;
int n,c,i,cump,pret,idx,sum,SOL;
pair<int,int> V[2010];
void read(),solve();
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("carnati.in","r",stdin);
freopen("carnati.out","w",stdout);
scanf("%d%d",&n,&c);
for(i=1;i<=n;i++)
{
scanf("%d%d",&V[i].first,&V[i].second);
}
}
void solve()
{
sort(V+1,V+n+1);
idx=V[1].first;
pret=V[1].second;
SOL=pret-c;
cump=1;
for(i=2;i<=n;i++)
{
if(V[i].second>=pret)
{
cump++;
sum=cump*pret-(V[i].first-idx+1)*c;
if( sum>V[i].second-c)
{
if(SOL<sum)SOL=sum;
else ;
}
else
{
cump=1;
idx=V[i].first;
pret=V[i].second;
sum=pret-c;
if(SOL<sum)SOL=sum;
}
}
else
{
if( sum > (cump+1)*V[i].second-(V[i].first-idx+1)*c)continue;
else
{
pret=V[i].second;
cump++;
sum=cump*pret-(V[i].first-idx+1)*c;
if(SOL<sum)SOL=sum;
}
}
}
printf("%d\n",SOL);
}