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

int n,h[200005],a[200005];
long long ft[200005];

void up(int x,long long v)
{
    for(;x < 200005;x += (x&-x)) ft[x] = max(ft[x],v);
}

long long go(int x)
{
    long long ans = 0;
    for(;x;x -= (x&-x)) ans = max(ans,ft[x]);
    return ans;
}

int main()
{
    scanf("%d",&n);
    for(int i = 0;i < n;i++)
    {
        scanf("%d",&h[i]);
    }
    for(int i = 0;i < n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(int i = 0;i < n;i++)
    {
        up(h[i],go(h[i])+a[i]);
    }
    printf("%lld\n",go(n));
}
