Pagini recente » Cod sursa (job #1834186) | Cod sursa (job #1436931) | Cod sursa (job #998313) | Cod sursa (job #885003) | Cod sursa (job #368649)
Cod sursa(job #368649)
#include<cstdio>
#include<algorithm>
using namespace std;
struct inter
{
int t,p;
};
inter v[2001];
int n,c,maxim;
int maxx(int a, int b)
{
if(a>b) return a;
return b;
}
bool comp(const inter &a, const inter &b)
{
if(a.t>b.t) return false;
return true;
}
int profit(int pret)
{
int i,sc,smax;
if(v[1].p>=pret)
sc=smax=pret-c;
else sc=smax=-c;
for(i=2;i<=n;i++)
{
if(sc<(v[i].t-v[i-1].t-1)*c)
sc=0;
else
sc-=(v[i].t-v[i-1].t-1)*c;
if(v[i].p>=pret)
sc+=pret;
sc-=c;
smax=maxx(smax,sc);
}
return smax;
}
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,comp);
int i,j;
for(i=1;i<=n;i++)
maxim=maxx(maxim,profit(v[i].p));
printf("%d",maxim);
return 0;
}