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




const int N = 2e5 + 5;





int n, h[N], a[N];
long long t[N], ans;

inline long long get(int pos){
    long long cur = 0;
    for(int i = pos; i >= 1; i &= i + 1, i--){
        cur = max(cur, t[i]);
    }
    return cur;
}

inline void upd(int pos, long long val){
    for(int i = pos; i <= n; i |= i + 1){
        t[i] = max(t[i], val);
    }
}

int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    cin >> n;
    for(int i = 1; i <= n; i++){
        cin >> h[i];
    }
    for(int i = 1; i <= n; i++){
        cin >> a[i];
        long long val = get(h[i] - 1) + a[i];
        upd(h[i], val);
        ans = max(ans, val);
    }
    cout << ans;
}
