Pagini recente » Cod sursa (job #1552534) | Cod sursa (job #1167016) | Cod sursa (job #2975960) | Cod sursa (job #2665549) | Cod sursa (job #2345855)
#include <iostream>
#include <fstream>
#include <algorithm>
#define Nmax 2005
using namespace std;
ifstream f("carnati.in");
ofstream g("carnati.out");
int n, c, t, p;
pair <int, int> v[Nmax];
int profit, price, pmax;
void read()
{
f >> n >> c;
for (int i = 1; i <= n; i++)
{
f >> t >> p;
v[i]={t, p};
}
//for (int i = 1; i <= n; i++)
// cout << v[i].first << " " << v[i].second << '\n';
}
void solve()
{
sort(v+1, v+n+1);
for (int i = 1; i <=n; i++)
{
price=v[i].second;
int j = 1;
for (; v[j].second < price; j++);
profit=price-c;
pmax=max(pmax,profit);
int k=j;
j++;
for (; j <= n; j++)
if(v[j].second >= price)
pmax=max(pmax,profit=max(profit + price - c*(v[j].first-v[k].first), price-c)), k=j;
}
g << pmax;
}
int main()
{
read();
solve();
return 0;
}