Pagini recente » Cod sursa (job #922506) | Cod sursa (job #659233) | Cod sursa (job #1289432) | Cod sursa (job #1849185) | Cod sursa (job #2750326)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("carnati.in");
ofstream fout("carnati.out");
struct carnati
{
int t, p;
}v[2005];
int cond(carnati a, carnati b)
{
return a.t<b.t;
}
int main()
{
int n, c; fin >> n >> c;
for(int i=1; i<=n; i++)
fin >> v[i].t >> v[i].p;
sort(v+1, v+n+1, cond);
// for(int i=1; i<=n; i++)
// fout << v[i].t << " " << v[i].p << "\n";
int MAX=0;
for(int i=1; i<=n; i++)
{
//setez pret ca fiind v[i].p;
int maxant=0, maxc, pret=v[i].p, antp=0;
for(int j=1; j<=n; j++)
if(v[j].p>=pret)
{
if(antp==0) maxc=max(maxant-c+pret, pret-c);
else maxc=max(maxant-(v[j].t-v[antp].t)*c+pret, pret-c);
maxant=maxc;
antp=j;
MAX=max(MAX, maxc);
}
}
fout << MAX;
return 0;
}