Pagini recente » Cod sursa (job #3308239) | Cod sursa (job #46669) | Cod sursa (job #749360) | Cod sursa (job #201146) | Cod sursa (job #3335385)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin ("carnati.in");
ofstream cout ("carnati.out");
struct a
{
int intrare,val;
}v[2001];
int cmp (a A , a B)
{
return A.intrare < B.intrare;
}
int main()
{
int n,p;
cin >>n>>p;
for (int i = 1; i <= n; i++)
{
cin >>v[i].intrare>>v[i].val;
}
sort (v + 1 , v + n + 1 , cmp);
long long smax = 0;
v[0].intrare = v[1].intrare;
for (int i = 1; i <= n; i++)
{
int s = 0;
for (int j = 1; j <= n; j++)
{
if (s < 0)
s = 0;
if (v[j].val > v[i].val)
{
s += v[i].val;
}
if (s > smax)
smax = s;
s -= (v[j].intrare - v[j - 1].intrare) * p;
}
}
cout <<smax - p;
return 0;
}