//:Ditttoo
#include<bits/stdc++.h>
#define int long long int 
using namespace std;
const int N = (int)2e5 + 9;
int t[N],n;
void update(int v , int idx){for(;idx<=n;idx += idx & -idx)t[idx] = max(v,t[idx]);}
int get(int idx){int a = 0;for(;idx>0 ; idx -= idx & -idx)a = max(a,t[idx]);return a;}
int32_t main()
{
	cin>>n;

	int h[n+1] , a[n+1];
	for(int i=1;i<=n;i++) cin >> h[i];
	for(int i=1;i<=n;i++) cin >> a[i];

	int dp[n+1];

	for(int i=1;i<=n;i++){
		dp[h[i]] = get(h[i]) + a[i];
		update(dp[h[i]] , h[i]);
		// for(int i=1;i<=n;i++)cout<<t[i]<<" ";
		// cout << endl;
	}
	cout << get(n);




	return 0;
}        