Submission #1184129

#TimeUsernameProblemLanguageResultExecution timeMemory
1184129NamkhingSafety (NOI18_safety)C++20
66 / 100
6 ms1092 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; const int N = 1e5 + 10; ll n, h, ans, lzl, lzr, a[N]; priority_queue<ll> pql; priority_queue<ll, vector<ll>, greater<ll>> pqr; int main() { cin.tie(nullptr)->ios_base::sync_with_stdio(false); cin >> n >> h; for (int i = 1; i <= n; i++) cin >> a[i]; pql.push(a[1]); pqr.push(a[1]); for (int i = 2; i <= n; i++) { lzl += h; lzr += h; if (a[i] < pql.top() - lzl) { ll x = pql.top(); pql.pop(); ans += x - lzl - a[i]; pqr.push(x - lzl - lzr); pql.push(a[i] + lzl); pql.push(a[i] + lzl); } else if (a[i] > pqr.top() + lzr) { ll x = pqr.top(); pqr.pop(); ans += a[i] - x - lzr; pql.push(x + lzl + lzr); pqr.push(a[i] - lzr); pqr.push(a[i] - lzr); } else { pql.push(a[i] + lzl); pqr.push(a[i] - lzr); } } cout << ans; }
#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...