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>
// #include "grader.cpp"
using namespace std;
typedef long long ll;
const ll MXN = 16;
const ll MXP = (1 << 16);
ll dp[MXN][MXP];
ll plan_roller_coaster (vector<int> S, vector<int> T){
vector<int> s, t;
for (auto x : S) s.push_back(x);
for (auto x : T) t.push_back(x);
ll n = s.size();
ll ans = 1e18;
ll pw = (1 << n);
for (ll mask = 1; mask < pw; mask++){
for (ll start = 0; start < n; start++){
if (((1 << start) & mask) == 0) continue;
ll nmask = mask ^ (1 << start);
if (nmask == 0)
dp[start][mask] = 0;
else{
for (ll next = 0; next < n; next++){
if (((1 << next) & nmask) == 0) continue;
dp[start][mask] = dp[next][nmask] + max(0ll, (ll)(t[start] - s[next]));
}
}
if (mask == pw - 1)
ans = min(ans, dp[start][mask]);
}
}
return ans;
}
// int main(){
// return 0;
// }
# | 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... |