#include <bits/stdc++.h>

using namespace std;

const int N = 200005;
int a[N], b[N];

int main() {
	int n;
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d", &a[i]);
	}
	set <pair <int, long long> > s;
	s.insert({0, 0});
	for (int i = 0; i < n; i++) {
		int x;
		scanf("%d", &x);
		auto it = s.lower_bound({a[i], 0});
		--it;
		long long temp = it->second + x;
		++it;
		while (it != s.end()) {
			if (it->second > temp) {
				break;
			}
			s.erase(it++);
		}
		s.insert({a[i], temp});
	}
	printf("%lld\n", (*(--s.end())).second);
	return 0;
}
