// failed to generate code

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

const int MAX_N = 200020;
long long seg[MAX_N];
void add(int x,long long v){
    for(int i = x ; i < MAX_N ; i += i & -i ){
        seg[i] = max(seg[i], v);
    }
}

long long get(int x){
    long long ans = 0;
    for(int i = x ; i  ; i -= i & -i ){
        ans = max(ans, seg[i]);
    }
    return ans;
}
int main(){	
    ios::sync_with_stdio(false);

    int N;
    cin >> N;
    vector<int> a(N), h(N);
    for(int i = 0 ; i < N ; i++){
        cin >> h[i];
    }
    for(int i = 0 ; i < N ; i++){
        cin >> a[i];
    }
    for(int i = 0 ; i < N ; i++){
        add(h[i], get(h[i]) + a[i]);
    }

    cout << get(N) << endl;
}
