Pagini recente » Cod sursa (job #2433343) | Cod sursa (job #2681540) | Cod sursa (job #3222158) | Cod sursa (job #1742630) | Cod sursa (job #3340088)
#include <fstream>
#include <algorithm>
#define nmax 2005
#define t first
#define p second
using namespace std;
ifstream cin("carnati.in");
ofstream cout("carnati.out");
int n,c,sol;
pair<int,int>v[nmax];
signed main()
{
cin>>n>>c;
for(int i=1;i<=n;i++)
cin>>v[i].t>>v[i].p;
sort(v+1,v+n+1);
for(int i=1;i<=n;i++){
int pret=v[i].p,s=0,last=-1;
for(int j=1;j<=n;j++){
if(last==-1){/// am inchis magazinul si il deschid acum
if(v[j].p>=pret&&pret-c>0){
s=pret;
last=v[j].t;
}
}else{
if(s-c*(v[j].t-last)+pret*(v[j].p>=pret)<=0){
s=0;
j--;/// ma intorc
last=-1;
}else{
s=s-c*(v[j].t-last)+pret*(v[j].p>=pret);
last=v[j].t;
}
}
sol=max(sol,s);
}
}
cout<<sol-c;
return 0;
}