Pagini recente » Cod sursa (job #1569858) | Cod sursa (job #297847) | Cod sursa (job #1561380)
#include <algorithm>
#include <fstream>
using namespace std;
ifstream cin("carnati.in");
ofstream cout("carnati.out");
const int MAX = 2001;
struct client{
int t, p;
} v[MAX];
int n, c;
int profit(int x){
int ans = 0, cur = 0, last = v[1].t - 1;
for(int i=1; i<=n; i++){
cur -= (v[i].t - last - 1)*c;
last = v[i].t - 1;
if(cur<0)
cur = 0;
if(v[i].p>=x)
cur += x;
cur -= c;
last = v[i].t;
if(cur>ans)
ans = cur;
}
return ans;
}
bool cmp(client a, client b){return a.t<b.t;}
int main()
{
cin>>n>>c;
for(int i=1; i<=n; i++)
cin>>v[i].t>>v[i].p;
sort(v+1, v+n+1, cmp);
int ans = 0;
for(int i=1; i<=n; i++){
int pr = profit(v[i].p);
if(pr>ans)
ans = pr;
}
cout<<ans;
return 0;
}