#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main () {
ios_base::sync_with_stdio(0); cin.tie(0);
ll n, h; cin >> n >> h;
multiset<ll> L, R;
priority_queue<ll> mer;
ll dl = 0, dr = 0;
ll ans = 0;
for(int i = 0; i < n; ++i){
int x; cin >> x;
ans -= x;
L.insert(x - dl);
R.insert(x - dr);
while(*R.begin() + dr < *L.rbegin() + dl){
R.insert(*L.rbegin() + dl - dr);
L.insert(*R.begin() + dr - dl);
R.erase(R.begin());
L.erase(prev(L.end()));
}
ans -= (i + 1) * h;
dl -= h;
dr += h;
}
for(auto x : R)ans += x + dr;
cout << ans << '\n';
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |