Pagini recente » Cod sursa (job #560303) | Cod sursa (job #209394) | Cod sursa (job #2551594) | Cod sursa (job #1927309) | Cod sursa (job #2072173)
#include <cstdio>
#include <algorithm>
using namespace std;
pair <int,int> v[2001];
int profit (int x,int pret){
if (x<pret)
return 0;
else return pret;
}
int main()
{
FILE *fin=fopen ("carnati.in","r");
FILE *fout=fopen ("carnati.out","w");
int n,i,j,pret;
long long maxi,sc,c;
fscanf (fin,"%d%lld",&n,&c);
for (i=1;i<=n;i++)
fscanf (fin,"%d%d",&v[i].first,&v[i].second);
sort (v+1,v+n+1);
maxi=0;
for (i=1;i<=n;i++){
pret=v[i].second;
//if (pret==115)
// printf ("a");
sc=0;
for (j=1;j<=n;j++){
if (sc==0){
if (profit (v[j].second,pret) && pret-c>0)
sc=pret-c;
}
else if (sc-(v[j].first-v[j-1].first)*c+profit (v[j].second,pret)>0)
sc=sc-(v[j].first-v[j-1].first)*c+profit (v[j].second,pret);
else {
if (profit (v[j].second,pret) && pret-c>0)
sc=pret-c;
else sc=0;
}
if (maxi<sc){
maxi=sc;
//printf ("%d ",pret);
}
//maxi=max(maxi,sc);
}
}
fprintf (fout,"%lld",maxi);
return 0;
}