#include <bits/stdc++.h>
using namespace std;
long long val(vector<long long>& v, long long x, long long a, long long y,
              long long b, long long len) {
  long long res = 0;
  int j = 0;
  for (int i = 0; i < len; i++) {
    if ((i + 1) % a == 0 && (i + 1) % b == 0) {
      res += (x + y) * v[j] / 100;
      j++;
    }
  }
  for (int i = 0; i < len; i++) {
    if ((i + 1) % a == 0 && (i + 1) % b != 0) {
      res += x * v[j] / 100;
      j++;
    }
  }
  for (int i = 0; i < len; i++) {
    if ((i + 1) % a != 0 && (i + 1) % b == 0) {
      res += y * v[j] / 100;
      j++;
    }
  }
  return res;
}
int main() {
  long long times;
  cin >> times;
  while (times-- > 0) {
    long long n, k, x, a, y, b;
    cin >> n;
    vector<long long> v(n);
    for (auto& p : v) cin >> p;
    cin >> x >> a >> y >> b >> k;
    sort(v.rbegin(), v.rend());
    if (y > x) {
      swap(y, x);
      swap(b, a);
    }
    long long lower = 0, upper = n;
    if (val(v, x, a, y, b, n) < k)
      cout << "-1\n";
    else {
      while (lower != upper) {
        auto mid = (lower + upper) / 2;
        auto res = val(v, x, a, y, b, mid);
        if (res >= k) {
          upper = mid;
        } else {
          lower = mid + 1;
        }
      }
      cout << upper << "\n";
    }
  }
  return 0;
}
