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 namespace std;
#define ar array
#define ll long long
const int MAX_N = 2e5 + 1;
const int MOD = 1e9 + 7;
const int INF = 1e9;
const ll LINF = 1e18;
void solve() {
int n, m; cin >> n >> m;
priority_queue<ll> L;
priority_queue<ll,vector<ll>,greater<ll>> R;
ll ans = 0;
for (int i = 0; i < n; i++) {
int x; cin >> x;
if (i == 0) L.push(x), R.push(x);
else {
ll shift = (ll)i * m;
ll l = L.top() - shift;
ll r = R.top() + shift;
if (x < l) {
L.push(x + shift);
L.push(x + shift);
L.pop();
R.push(l - shift);
ans += l - x;
}
else if (x > r) {
R.push(x - shift);
R.push(x - shift);
R.pop();
L.push(r + shift);
ans += x - r;
}
else {
L.push(x + shift);
R.push(x - shift);
}
}
}
cout << ans << "\n";
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
int tc = 1;
// cin >> tc;
for (int t = 1; t <= tc; t++) {
// cout << "Case #" << t << ": ";
solve();
}
}
# | 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... |