Pagini recente » Cod sursa (job #2118820) | Cod sursa (job #3239315) | Cod sursa (job #26109) | Cod sursa (job #799284) | Cod sursa (job #1657596)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("carnati.in");
ofstream fout("carnati.out");
const int MAXN=2e3+5;
int n,p,rez;
pair <int , int> v[MAXN];
int solve( int pret)
{
int s=0,rez=0;
for(int i=1; i<=n; i++)
{
if(s>0)
{
if(v[i].second>=pret)
s+=pret;
s-=p * ( v[i].first - v[i-1].first ) ;
}
else
{
if(v[i].second>=pret)
s=pret;
}
rez=max(rez,s-p);
}
return rez;
}
int main()
{
fin>>n>>p;
for(int i=1; i<=n; i++)
fin>>v[i].first>>v[i].second;
sort(v+1,v+n+1);
for(int i=1; i<=n; i++)
rez=max(rez,solve(v[i].second));
fout<<rez;
}