set<pair<int,int>> st;
int sum=0;
int ans=0;
for(int i=0;i<n;i++)
{
int num=sum+f[i]-d*(i+1);
ans=max(ans,num);
if(f[i]>0)
{
sum+=f[i];
st.insert(make_pair(f[i],i));
if(st.size()>=m)
{
int tmp=(st.begin())->first;
st.erase(st.begin());
sum-=tmp;
}
}
}
set<int> st;
int sum=0;
int ans=0;
for(int i=0;i<n;i++)
{
int num=sum+f[i]-d*(i+1);
ans=max(ans,num);
if(f[i]>0)
{
sum+=f[i];
st.insert(f[i]);
if(st.size()>=m)
{
int tmp=*st.begin();
st.erase(tmp);
sum-=tmp;
}
}
}