Submission #574519

#TimeUsernameProblemLanguageResultExecution timeMemory
574519timreizinSafety (NOI18_safety)C++17
100 / 100
51 ms3640 KiB
#pragma GCC optimize("Ofast,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt") #include <iostream> #include <cmath> #include <iomanip> #include <vector> #include <stack> #include <queue> #include <list> #include <map> #include <vector> #include <bitset> #include <string> #include <algorithm> #include <iterator> #include <unordered_map> #include <unordered_set> #include <sstream> #include <fstream> #include <numeric> #include <tuple> #include <ctime> #include <random> #include <array> #include <cassert> #include <complex> #include <valarray> #include <set> #include <chrono> using namespace std; #define sorti(a) sort((a).begin(), (a).end()); #define reversi(a) reverse((a).begin(), (a).end()); #define yes cout << "Yes\n"; #define no cout << "No\n"; #define ans(a) cout << a << '\n'; #define read(a, n) {(a).resize(n); for (auto &i : a) cin >> i;} //#define int long long using ll = long long; using ld = long double; using ull = unsigned long long; const int INF = 2147483647; const ll LONGINF = 9223372036854775807; const ll MOD = 1e9 + 7; void solve() { int n; ll h; cin >> n >> h; ll res = 0; priority_queue<ll> pql; pql.push(-1e9); priority_queue<ll, vector<ll>, greater<>> pqr; for (int i = 0; i < n; ++i) { ll a; cin >> a; ll x = pql.top() - h * i; if (a == x) { pql.push(a + h * i); pqr.push(a - h * i); } else if (a > x) { pqr.push(a - h * i); pqr.push(a - h * i); ll x = pqr.top() + h * i; pqr.pop(); pql.push(x + h * i); res += a - x; } else { pql.push(a + h * i); pql.push(a + h * i); ll x = pql.top() - h * i; pql.pop(); pqr.push(x - h * i); res += x - a; } } ans(res) } signed main() { cin.tie(0)->sync_with_stdio(0); int t = 1; //cin >> t; while (t--) solve(); 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...