#include <bits/stdc++.h>
using namespace std;

#define int long long

constexpr int maxN = 2e5;
constexpr int lg = 17;

int n;
int h[maxN], c[maxN];
int st[maxN][lg + 1];

int maxi(int i, int j) {
	return (h[i] > h[j] ? i : j);
}

void build() {
	for (int i = 0; i < maxN; i++) {
		st[i][0] = i;
	}
	for (int l = 1; l <= lg; l++) {
		for (int i = 0; i < maxN; i++) {
			st[i][l] = maxi(st[i][l - 1], st[min(maxN - 1, i + (1 << (l - 1)))][l - 1]);
		}
	}
}

int get(int l, int r) {
	int lgn = __lg(r - l);
	return maxi(st[l][lgn], st[r - (1 << lgn)][lgn]);
}

int f(int i, int j) {
	// [i, j]
	if (i > j) {
		return 0;
	}
	if (i == j) {
		return c[i];
	}
	int mx = get(i, j);
	return c[mx] + min(f(i, mx - 1), f(mx + 1, j));
} 

void solve() {
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> h[i];
	}
	for (int i = 0; i < n; i++) {
		cin >> c[i];
	}
	build();
	cout << f(0, n - 1);
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    int tests = 1;
    // cin >> tests;
    while (tests--) {
    	solve();
	}
    return 0;
}
