Pagini recente » Cod sursa (job #9745) | Cod sursa (job #153444) | Borderou de evaluare (job #1036007) | Cod sursa (job #147744) | Cod sursa (job #2458678)
#include <iostream>
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
ifstream f("carnati.in");
ofstream g("carnati.out");
struct val{int t,p;} v[2005];
int n,c,rasp[2005],ans;
bool op(val a,val b)
{
if( a.t<b.t) return 1;
return 0;
}
int main()
{
f>>n>>c;
for(int i=1;i<=n;i++)
{
f>>v[i].t>>v[i].p;
}
sort(v+1,v+n+1,op);
for(int d=1;d<=n;d++)
{int cost=v[d].p;
for(int i=1;i<=n;i++) rasp[i]=0;
for(int i=1;i<=n;i++)
{
rasp[i]=max(rasp[i-1]-c*(v[i].t-v[i-1].t),0);
if(v[i].p>=cost) rasp[i]+=cost;
ans=max(ans,rasp[i]-c);
}
}
g<<ans;
}