#include<bits/stdc++.h>
using namespace std;
const int MAX =2e5+5;
long long  n, f[MAX],dp[MAX],a[MAX],h[MAX];
long long get(long  long idx){
    long long res=0;
    for(;idx;idx-=(idx &(-idx)))
        res=max(res,f[idx]);
    return res;
}
void modify(long long idx, long long val){
    for(;idx<MAX;idx+=(idx &(-idx))){
        f[idx]=max(f[idx],val);
    }
}

int main(){
    cin>>n;
    for(int i=1;i<=n;i++)   cin>>h[i];
    for(int i=1;i<=n;i++)   cin>>a[i];
    long long ans=0;
    for(int i=1;i<=n;i++){
        dp[i]=get(h[i])+a[i];
        ans=max(dp[i],ans);
        modify(h[i],dp[i]);
    }
    cout<<ans;
}
