Pagini recente » Cod sursa (job #2457569) | Cod sursa (job #1417414) | Cod sursa (job #1323314) | Cod sursa (job #256500) | Cod sursa (job #2702238)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("carnati.in");
ofstream g("carnati.out");
struct carnati
{
int ora,cost;
}v[2005];
bool cmp(carnati x,carnati y)
{
if(x.ora!=y.ora)
{
return x.ora<y.ora;
}
else
{
return x.cost<y.cost;
}
}
int n,salariu,i,carnativanduti,inceputprogram,finalprogram,j,profit,profitmaxim;
int main()
{
f>>n>>salariu;
for(i=1;i<=n;i++)
{
f>>v[i].ora>>v[i].cost;
}
sort(v+1, v+n+1, cmp);
for(i=1;i<=n;i++)
{
carnativanduti=0;
inceputprogram=v[1].ora;
finalprogram=v[i].ora;
for(j=2;j<=n;j++)
{
if(v[j].cost>=v[i].cost)
{
carnativanduti++;
if(v[j].ora<inceputprogram )
{
inceputprogram=v[j].ora;
}
if(v[j].ora>finalprogram)
{
finalprogram=v[j].ora;
}
if(carnativanduti*v[i].cost-(finalprogram-inceputprogram+1)*salariu<0)
{
inceputprogram=v[j].ora;
carnativanduti=1;
}
}
if(inceputprogram!=1505)
profit=carnativanduti*v[i].cost-(finalprogram-inceputprogram+1)*salariu;
if(profit>profitmaxim)
{
profitmaxim=profit;
}
}
}
g<<profitmaxim;
return 0;
}