This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using ll = long long;
const int nmax = 2e5 + 5;
const int lg = 20;
const int mod = 1e9 + 7;
const ll oo = 1e18;
#define fi first
#define se second
#define pii pair<int, int>
using namespace std;
int n, H;
int a[nmax];
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL), cout.tie(NULL);
// freopen("code.inp", "r", stdin);
// freopen("code.out", "w", stdout);
cin >> n >> H;
for(int i = 1; i <= n; ++i) cin >> a[i];
priority_queue<ll> le;
priority_queue<ll, vector<ll>, greater<ll>> ri;
ll cur = 0, ans = 0;
for(int i = 1; i <= n; ++i){
if(i == 1){
le.push(a[1]);
ri.push(a[1]);
}
else{
ll x = le.top(), y = ri.top();
if(x - cur <= a[i] && a[i] <= y + cur){
le.push(a[i] + cur);
ri.push(a[i] - cur);
}
else{
if(a[i] < x - cur){
le.push(a[i] + cur);
le.push(a[i] + cur);
x -= cur;
ans += abs(x - a[i]);
le.pop();
ri.push(x - cur);
}
else{
ri.push(a[i] - cur);
ri.push(a[i] - cur);
y += cur;
ans += abs(y - a[i]);
ri.pop();
le.push(y + cur);
}
}
}
cur += H;
}
cout << ans;
}
/*
10
4.0530 1.2670
4.3790 2.1420
1.9230 2.1920
3.3740 1.0850
0.9690 3.4510
1.5270 0.5160
4.3860 1.3360
4.5560 1.5050
4.9650 1.8120
0.6250 0.4820
*/
# | 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... |