Submission #1042782

#TimeUsernameProblemLanguageResultExecution timeMemory
1042782ZicrusRoller Coaster Railroad (IOI16_railroad)C++17
0 / 100
33 ms10332 KiB
#include <bits/stdc++.h> #include "railroad.h" using namespace std; typedef long long ll; ll plan_roller_coaster(vector<int> s, vector<int> t) { ll n = s.size(); vector<pair<ll, ll>> a(n); for (int i = 0; i < n; i++) { a[i] = {s[i], t[i]}; } mt19937 mt(time(0)); shuffle(a.begin(), a.end(), mt); ll res = 0; for (int i = 1; i < n; i++) { res += max(0ll, a[i-1].second - a[i].first); } bool done; do { done = true; for (int i = 1; i < n; i++) { ll prev = max(0ll, a[i-1].second - a[i].first); ll nw = max(0ll, a[i].second - a[i-1].first); if (i > 1) { prev += max(0ll, a[i-2].second - a[i-1].first); nw += max(0ll, a[i-2].second - a[i].first); } if (i < n-1) { prev += max(0ll, a[i].second - a[i+1].first); nw += max(0ll, a[i-1].second - a[i+1].first); } if (nw < prev) { swap(a[i-1], a[i]); done = false; res += nw - prev; } } } while (!done); return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...