Pagini recente » Cod sursa (job #2077552) | Cod sursa (job #2581145)
#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(i!=1)
{
if((v[i].zi-1)*salariu-nr[i-1]*fix>transport) transport=(v[i].zi-1)*salariu-nr[i-1]*fix;
if(nr[i]*fix-v[i].zi*salariu+transport>maxim) maxim=nr[i]*fix-v[i].zi*salariu+transport;
}
}
g<<maxim;
}