#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef MYDEBUG #define err(...) #define errs(...) #define NO_CP(a) #define MY_ASSERT(a) #endif using namespace std; void Calc(); #define PI 3.14159265358979323846 #define ALL(a) (a).begin(),(a).end() #define RALL(a) (a).rbegin(),(a).rend() const int INF = (int)10e8; typedef long long ll; typedef unsigned long long ull; int main() { cin.tie(0); ios::sync_with_stdio(false); cout.setf(ios::fixed, ios::floatfield); cout.precision(15); Calc(); cout.flush(); return 0; } struct Scanner { NO_CP(Scanner); templatestatic A Next() { A a; cin >> a; MY_ASSERT(cin); return a; } static string Line() { string s; getline(cin, s); MY_ASSERT(cin); return s; } templatestatic vector Array(int n) { vector a(n); for (A& i : a) i = Next(); return a; } static int Int() { return Next(); } template Scanner& operator>>(A &a) { a = Next(); return *this; } template operator A() { return Next(); } }; template<> bool Scanner::Next() { return !!cin; } /*---------------------------------------------------------------------*/ void Calc() { Scanner cin; int n = cin; auto a = cin.Array(n); auto b = cin.Array(n); map m; for (int i = 0; i < n; i++) { m[b[i]] += a[i]; } int k_score = m[0]; m[0] = 0; int maxi = max_element(ALL(m))->second; if (k_score >= maxi) { cout << "YES" << endl; } else { cout << "NO" << endl; } }