#include <bits/stdc++.h>
using namespace std;
int xx[] = {0, 0, -1, 1}, yy[] = {-1, 1, 0, 0};
using ll = long long;
using ppi = pair<int, int>;
using ppl = pair<ll, ll>;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int T;
  cin >> T;
  while (T--) {
    int N;
    cin >> N;
    vector<int> hs(N), ss(N);
    for (long long i = (0); i < (N); ++i) {
      cin >> hs[i];
    }
    for (long long i = (0); i < (N); ++i) {
      cin >> ss[i];
    }
    const int originalH0 = hs[0];
    int l = 0, r = hs[0];
    hs.push_back(0);
    bool finalAns = false;
    while (l <= r) {
      int mid = (l + r) >> 1;
      hs[0] = mid;
      hs[N] = originalH0 - mid;
      int tag = 0;
      int capa = 0;
      for (long long i = (0); i < (N); ++i) {
        if (hs[i] > capa + ss[i]) {
          tag = 1;
          break;
        }
        capa = ss[i] - max(0, hs[i] - capa);
      }
      if (tag == 0 && capa < hs[N]) {
        tag = 2;
      }
      if (tag == 0) {
        finalAns = true;
        break;
      }
      if (tag == 1) {
        r = mid - 1;
      } else {
        l = mid + 1;
      }
    }
    cout << (finalAns ? "YES" : "NO") << ((char)10);
  }
  return 0;
}
