Pagini recente » Cod sursa (job #2786405) | Cod sursa (job #1242153) | Cod sursa (job #321320) | Cod sursa (job #2028670) | Cod sursa (job #1775341)
#include <iostream>
#include <fstream>
#include <algorithm>
#define inf -2000000000
using namespace std;
ifstream f("carnati.in");
ofstream g("carnati.out");
struct client {int pret; int timp;} v[2001];
int n,i,j,c,pretcurent,ultim,uprofit,cprofit,maxjprofit=inf,maxprofit=inf,maxmaxprofit=inf,maxpret=inf,maxi,maxj;
bool mycmp(client a, client b)
{
if(a.timp<b.timp) return 1;
return 0;
}
int main()
{
f>>n>>c;
for(i=1;i<=n;i++) f>>v[i].timp>>v[i].pret;
sort(v+1,v+n+1,mycmp);
for(i=1;i<=n;i++)
{
pretcurent=v[i].pret;
ultim=0; maxjprofit=inf; v[0].timp=v[0].pret=0;
for(j=1;j<=n;j++)
{
if(pretcurent<=v[j].pret)
{
cprofit=maxjprofit+pretcurent-(v[j].timp-v[ultim].timp)*c;
maxjprofit=max(cprofit,pretcurent-c);
ultim=j;
if(maxjprofit>=maxprofit) maxprofit=maxjprofit;
}
}
if(maxprofit>=maxmaxprofit) maxmaxprofit=maxprofit;
}
if(maxmaxprofit<0) g<<0<<'\n';
else g<<maxmaxprofit<<'\n';
return 0;
}