#include <algorithm>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <string>
#include <vector>
using namespace std;
typedef long long int ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;

#define rep(i,x) for(int i=0;i<(int)(x);++i)
#define reps(i,x) for(int i=1;i<=(int)(x);++i)
#define rrep(i,x) for(int i=((int)(x)-1);i>=0;i--)
#define rreps(i,x) for(int i=((int)(x));i>0;i--)
#define pb push_back

int n, player;

int map_max(map<int, int> M){
    int mx = 0;
    map<int, int>::iterator itr;
    for (itr = M.begin(); itr != M.end(); itr++) {
        if (mx < itr->second) mx = itr->second;
    }
    return mx;
}

int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    map<int, int> ps;
    cin >> n;
    vi score(n);
    rep(i, n) cin >> score[i];
    rep(i, n) {
        cin >> player;
        ps[player] += score[i];
    }
    int top = map_max(ps);
    cout << (top <= ps[0] ? "YES" : "NO") << "\n";
    return 0;
}