Pagini recente » Cod sursa (job #2522094) | Cod sursa (job #1221529) | Cod sursa (job #3169033) | Cod sursa (job #1448810) | Cod sursa (job #1436888)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
struct timp
{
int t,p;
};
bool cmp (timp x, timp y)
{
if(x.t<y.t)
return true;
else
return false;
}
timp v[2001];
int n,c;
int calcul (int pret,int n , int c)
{
int ultim=0,i,profit,profitmax=-1000001;
//cout<<"vf "<<pret<<" "<<n<<"\n";
for(i=1; i<=n; i++)
{
//cout<<i<< "";
if(v[i].p>=pret)
{
//cout<<"vf";
if(ultim==0)
{
profit=pret-c;
ultim =i;
}
else
{
//cout<<"vf";
if(profit-c*(v[i].t-v[ultim].t-1)<0)
profit=pret-c;
else
profit+=pret-c-c*(v[i].t-v[ultim].t-1);
ultim=i;
if(profit>profitmax)
profitmax=profit;
}
//cout<<profit<<" "<<c<<" "<<i<<" "<<pret<<"\n";
}
}
return profitmax;
}
int main()
{
ifstream fin ("carnati.in");
ofstream fout ("carnati.out");
int n,c,max=-1000001,s=0,i,st,cl;
fin>>n>>c;
for(i=1; i<=n; i++)
fin>>v[i].t>>v[i].p;
sort(v+1,v+n+1,cmp);
st=i;
for(i=1; i<=n; i++)
{
cl=calcul (v[i].p,n,c);
if(cl>max)
max=cl;
//cout<<c<<" ";
}
if(max>0)
fout<<max;
else
fout<<"0";
return 0;
}