Pagini recente » Cod sursa (job #293914) | Cod sursa (job #1315065) | Cod sursa (job #2328128) | Cod sursa (job #1468844) | Cod sursa (job #2580757)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("carnati.in");
ofstream g("carnati.out");
int n,salariu;
int fix,maxim=-2000000000,transport,suma,nr[2005];
struct om{
int zi,cost;
}v[2005];
bool cmp(om a,om b)
{
return a.zi<b.zi;
}
int main()
{
f>>n>>salariu;
for(int i=1;i<=n;i++)
f>>v[i].zi>>v[i].cost;
sort(v+1,v+n+1,cmp);
for(int pas=1;pas<=n;pas++)
{
fix=v[pas].cost;
transport=-2000000000;
for(int i=1;i<=n;i++)
{
nr[i]=nr[i-1];
if(v[i].cost>=fix) nr[i]++;
}
for(int i=1;i<=n;i++)
{
if(nr[i]*fix-v[i].zi*salariu+transport>maxim) maxim=nr[i]*fix-v[i].zi*salariu+transport;
if((v[i].zi-1)*salariu-nr[i-1]*fix>transport) transport=(v[i].zi-1)*salariu-nr[i-1]*fix;
}
}
g<<maxim;
}