#include using i64 = long long; using u64 = unsigned long long; using u32 = unsigned; using u128 = unsigned __int128; using i128 = __int128; void solve() { int N; std::cin >> N; std::vector a(N), b(N); int X = 0; for(int& x : a) { std::cin >> x; X += x; } int max = -1, Y = 0; for(int i = 0; i < N; i ++) { int z; std::cin >> z; if(z == 0) continue; b[z] += a[i]; Y += a[i]; max = std::max(max, b[z]); } if(X - Y >= max) std::cout << "YES\n"; else std::cout << "NO\n"; } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int T = 1; //std::cin >> T; while (T--) { solve(); } return 0; }