Pagini recente » Cod sursa (job #2557973) | Cod sursa (job #1508397) | Cod sursa (job #312198) | Cod sursa (job #2731721) | Cod sursa (job #1013661)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("carnati.in");
ofstream g("carnati.out");
int n,c,t[2005],p[2005];
void Read()
{ int i;
f>>n>>c; //cout<<n<<" "<<c;
for(i=1;i<=n;i++)
f>>t[i]>>p[i]; //cout<<p[1];
}
int Ans(int price)
{ int i,mn,set=0,nr=0,sol=0;
for(i=1;i<=n;i++)
{ if (price<=p[i])
{nr++; //cout<<p[i]<<"\n";
if (set)
{if (nr*price-t[i]*c-mn>sol) sol=nr*price-t[i]*c-mn;
mn=min(mn,nr*price-t[i]*c+c-price);
}
else {set=1;mn=nr*price-t[i]*c+c-price;}
if (nr*price-t[i]*c>sol) sol=nr*price-t[i]*c;
}
//if (i==2) cout<<mn;
}
return sol;
}
int main()
{ int i,res=-(1<<31);
Read();
for(i=1;i<=n;i++)
res=max(res,Ans(p[i]));
g<<res;
return 0;
}