Pagini recente » Monitorul de evaluare | Cod sursa (job #158235) | Monitorul de evaluare | Cod sursa (job #2910745) | Cod sursa (job #2957532)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("carnati.in");
ofstream fout("carnati.out");
const int dim=2e3+10,inf=1e18;
struct elem{
int t,p;
bool operator<(const elem &other) const{
return t<other.t;
}
}v[dim];
int n,c;
signed main(){
fin>>n>>c;
for(int i=1;i<=n;i++){
fin>>v[i].t>>v[i].p;
}
sort(v+1,v+n+1);
int ans=-inf;
for(int i=1;i<=n;i++){
int l_val=0,r_val=0,cnt=0;
for(int j=i;j>=1;j--){
if(v[j].p>=v[i].p){
cnt++;
}
l_val=max(l_val,cnt*v[i].p-c*(v[i].t-v[j].t+1));
}
cnt=0;
for(int j=i;j<=n;j++){
if(v[j].p>=v[i].p){
cnt++;
}
r_val=max(r_val,cnt*v[i].p-c*(v[j].t-v[i].t+1));
}
ans=max({ans,l_val,r_val,l_val+r_val-v[i].p+c});
}
fout<<ans<<endl;
}