//Normal #define _GLIBCXX_DEBUG #define ll long long #include using namespace std; using Graph = vector>; void print(auto a){ cout << a; } void prints(auto a){ cout << a << " "; } void prints(){ cout << " "; } void printl(auto a){ cout << a << endl; } void printl(){ cout << endl; } void fix(int n){ cout << fixed << setprecision(n); } int main(){ int N; cin >> N; vector A(N), B(N); int total = 0; map mp; for(int i = 0; i < N; i++){ cin >> A[i]; total += A[i]; } for(int i = 0; i < N; i++){ cin >> B[i]; if(B[i] != 0){ total -= A[i]; mp[B[i]] += A[i]; } } for(auto p: mp){ if(total < p.second){ printl("NO"); return 0; } } printl("YES"); return 0; }