#include "railroad.h"
#include <bits/stdc++.h>
#define int long long
#define pii pair <int, int>
#define emb emplace_back
#define all(a) a.begin(), a.end()
using namespace std;
const int N = 2e5 + 5;
const int inf = 1e18;
long long plan_roller_coaster(std::vector<int32_t> s, std::vector<int32_t> t) {
int n = s.size();
int dp[1 << n][n]; for (int i = 0; i < (1 << n); i++) for (int j = 0; j < n; j++) dp[i][j] = inf;
for (int i = 0; i < n; i++) dp[(1 << i)][i] = 0;
for (int mask = 1; mask < (1 << n); mask++) {
for (int u = 0; u < n; u++) {
if (dp[mask][u] != inf) continue;
// compute dp[mask][u]
if (!((1 << u) & mask)) continue;
for (int v = 0; v < n; v++) {
if (!((1 << v) & mask)) continue;
dp[mask][u] = min(dp[mask][u], dp[(mask^(1 << u))][v] + max(0, t[v] - s[u]));
}
}
}
return *min_element(dp[(1 << n) - 1], dp[(1 << n) - 1] + n);
}