Pagini recente » Cod sursa (job #2475569) | Cod sursa (job #1452852) | Cod sursa (job #2005654) | Cod sursa (job #1630464) | Cod sursa (job #1775340)
#include <iostream>
#include <fstream>
#include <algorithm>
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,maxprofit,maxmaxprofit,maxpret,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=0; 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;
}
g<<maxmaxprofit<<'\n';
return 0;
}