Pagini recente » Cod sursa (job #985304) | Cod sursa (job #859400) | Cod sursa (job #593626) | Cod sursa (job #584609) | Cod sursa (job #2927920)
#include <fstream>
#include <climits>
#include <algorithm>
using namespace std;
ifstream fin("carnati.in");
ofstream fout("carnati.out");
struct om{
int t, p;
}v[2001];
bool cmp(om a, om b)
{
if(a.t!=b.t)
{
return a.t<b.t;
}
return a.p<b.p;
}
int main()
{
int n, k, i, s=0, smax=INT_MIN, poz=1, pret, j;
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>v[i].t>>v[i].p;
}
sort(v+1, v+n+1, cmp);
for(i=1;i<=n;i++)
{
s=0;
int pret=v[i].p;
poz=1;
for(j=1;j<=n;j++)
{
if(v[j].p>=pret)
{
if(max(s+pret-(v[j].t-poz)*k, pret-k)==pret-k)
{
s=pret-k;
poz=v[j].t;
}
else
{
s=s+pret-(v[j].t-poz)*k;
poz=v[j].t;
}
if(s>smax)
{
smax=s;
}
}
}
}
fout<<smax;
}