// Template {{{
#include <bits/stdc++.h>
#define REP(i,n) for(int i=0; i<(int)(n); ++i)
using namespace std;
typedef long long LL;

template<typename T1, typename T2>
ostream& operator << (ostream& os, const pair<T1, T2>& p) {
    os << "(" << p.first << ", " << p.second << ")";
    return os;
}

template<typename T>
ostream& operator << (ostream& os, const vector<T>& v) {
    os << "{";
    for(int i = 0; i < v.size(); i++)
        os << v[i] << (i+1<v.size()?", ":"");
    os << "}";
    return os;
}

class range {
  struct Iterator {
    int val, inc;
    int operator*() {return val;}
    bool operator!=(Iterator& rhs) {return val < rhs.val;}
    void operator++() {val += inc;}
  };
  Iterator i, n;
public:
  range(int e) : i({0, 1}), n({e, 1}) {}
  range(int b, int e) : i({b, 1}), n({e, 1}) {}
  range(int b, int e, int inc) : i({b, inc}), n({e, inc}) {}
  Iterator& begin() {return i;}
  Iterator& end() {return n;}
};

const int dx[4] = {1, 0, -1, 0};
const int dy[4] = {0, 1, 0, -1};
inline bool valid(int x, int w) { return 0 <= x && x < w; }

void iostream_init() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.setf(ios::fixed);
    cout.precision(12);
}
//}}}

int main(){
    iostream_init();

    int N, M;
    while(cin >> N) {
        vector<LL> a(N);
        REP(i, N) cin >> a[i];
        sort(a.begin(), a.end());
        vector<LL> sum(N+1);
        REP(i, N) sum[i+1] = sum[i] + a[i];
        cin >> M;
        vector<LL> b(M);
        REP(i, M) cin >> b[i];
        vector<LL> c(M);
        REP(i, M) cin >> c[i];

        REP(i, M) {
            int k = upper_bound(a.begin(), a.end(), b[i]) - a.begin();
            if(sum[k] >= c[i]) {
                cout << "Yes" << endl;
            } else {
                cout << "No" << endl;
            }
        }

    }

    return 0;
}

/* vim:set foldmethod=marker: */