Pagini recente » Cod sursa (job #890286) | Cod sursa (job #903520) | Cod sursa (job #2703763) | Cod sursa (job #1940368) | Cod sursa (job #1775338)
#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++) cout<<v[i].timp<<' '<<v[i].pret<<'\n';
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, maxj=j, maxpret=pretcurent;
}
}
if(maxprofit>maxmaxprofit) maxmaxprofit=maxprofit, maxj=j, maxpret=pretcurent;
}
g<<maxmaxprofit<<'\n';
return 0;
}