Submission #1010300

#TimeUsernameProblemLanguageResultExecution timeMemory
1010300tvladm2009Safety (NOI18_safety)C++17
100 / 100
37 ms5496 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { ios::sync_with_stdio(false); cin.tie(0); ll n, h; cin >> n >> h; priority_queue<ll> neg; ll negd = 0; priority_queue<ll, vector<ll>, greater<ll>> pos; ll posd = 0; ll ans = 0; for (int i = 0; i < n; i++) { ll a; cin >> a; if (i == 0) { neg.push(a); pos.push(a); } else { negd -= h; posd += h; ll l = neg.top() + negd; ll r = pos.top() + posd; if (l <= a && a <= r) { neg.push(a - negd); pos.push(a - posd); } else if (a > r) { ans += a - r; neg.push(r - negd); pos.pop(); pos.push(a - posd); pos.push(a - posd); } else { ans += l - a; pos.push(l - posd); neg.pop(); neg.push(a - negd); neg.push(a - negd); } } } cout << ans << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...