/*
Div-2 #308
ID: ravi_rk
PROG: Marking scheme
LANG: C++11
*/
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <string>
#include <vector>
#include <algorithm>
#define DEBUG 0
using namespace std;
template<class T> T power(T N,T P){ return (P==0)? 1: N*power(N,P-1); }
int main() {
std::ios_base::sync_with_stdio(false);
cout << std::fixed;
cout << std::setprecision(6);
int t, n, k, marks[50], up, low;
double sum;
long long int fav[1000];
cin >> t;
for (int i = 0; i < t; i++) {
cin >> n;
for(int j = 0; j < n; j++)
cin >> fav[j];
cin >> k;
marks[0] = 0;
for(int j = 1; j <= k; j++)
cin >> marks[j];
// sort(fav, fav + n);
if(DEBUG) {
for(int j = 0; j < n; j++)
cout << fav[j] << ", ";
cout << endl;
}
sort(marks, marks + k + 1);
if(DEBUG) {
for(int j = 0; j <= k; j++)
cout << marks[j] << ", ";
cout << endl;
}
int j = 0, l = 0, tmp;
sum = 0;
while(j < n && l <= k) {
low = j;
while(fav[j] == fav[j+1])
j++;
up = j+1;
if(DEBUG)
cout << "Up: " << up << ", Low: " << low << endl;
sum += marks[l];
if(DEBUG)
cout << "Sum: " << sum << endl;
if(up - low == 1 && fav[up] > fav[low]) {
tmp = l;
while(marks[l + 1] <= 2*marks[l])
l++;
if(tmp == l)
l++;
} else if(up - low > 1 && fav[up] > fav[up - 1]){
l = 1;
} else {
l = 0;
}
j = up;
if(DEBUG)
cout << "J: " << j << ", L: " << l << endl;
}
cout << (double)sum/n << endl;
}
return 0;
}
LyoKRGl2LTIgIzMwOApJRDogcmF2aV9yawpQUk9HOiBNYXJraW5nIHNjaGVtZQpMQU5HOiBDKysxMQoqLwoKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxjc3RkaW8+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCiNkZWZpbmUgREVCVUcgMAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPGNsYXNzIFQ+IFQgcG93ZXIoVCBOLFQgUCl7IHJldHVybiAoUD09MCk/ICAxOiBOKnBvd2VyKE4sUC0xKTsgfQoKaW50IG1haW4oKSB7CgoJc3RkOjppb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWNvdXQgPDwgc3RkOjpmaXhlZDsKICAgIGNvdXQgPDwgc3RkOjpzZXRwcmVjaXNpb24oNik7CgoJaW50IHQsIG4sIGssIG1hcmtzWzUwXSwgdXAsIGxvdzsKCWRvdWJsZSBzdW07Cglsb25nIGxvbmcgaW50IGZhdlsxMDAwXTsKCgljaW4gPj4gdDsKCglmb3IgKGludCBpID0gMDsgaSA8IHQ7IGkrKykgewoJCWNpbiA+PiBuOwoJCWZvcihpbnQgaiA9IDA7IGogPCBuOyBqKyspCgkJCWNpbiA+PiBmYXZbal07CgkJY2luID4+IGs7CgkJbWFya3NbMF0gPSAwOwoJCWZvcihpbnQgaiA9IDE7IGogPD0gazsgaisrKQoJCQljaW4gPj4gbWFya3Nbal07CgkJLy8gc29ydChmYXYsIGZhdiArIG4pOwoJCWlmKERFQlVHKSB7CgkJCWZvcihpbnQgaiA9IDA7IGogPCBuOyBqKyspCgkJCQljb3V0IDw8IGZhdltqXSA8PCAiLCAiOwoJCQljb3V0IDw8IGVuZGw7CgkJfQoJCXNvcnQobWFya3MsIG1hcmtzICsgayArIDEpOwoJCWlmKERFQlVHKSB7CgkJCWZvcihpbnQgaiA9IDA7IGogPD0gazsgaisrKQoJCQkJY291dCA8PCBtYXJrc1tqXSA8PCAiLCAiOwoJCQljb3V0IDw8IGVuZGw7CgkJfQoJCWludCBqID0gMCwgbCA9IDAsIHRtcDsKCQlzdW0gPSAwOwoJCXdoaWxlKGogPCBuICYmIGwgPD0gaykgewoJCQlsb3cgPSBqOwoJCQl3aGlsZShmYXZbal0gPT0gZmF2W2orMV0pCgkJCQlqKys7CgkJCXVwID0gaisxOwoJCQlpZihERUJVRykKCQkJCWNvdXQgPDwgIlVwOiAiIDw8IHVwIDw8ICIsIExvdzogIiA8PCBsb3cgPDwgZW5kbDsKCQkJc3VtICs9IG1hcmtzW2xdOwoJCQlpZihERUJVRykKCQkJCWNvdXQgPDwgIlN1bTogIiA8PCBzdW0gPDwgZW5kbDsKCQkJaWYodXAgLSBsb3cgPT0gMSAmJiBmYXZbdXBdID4gZmF2W2xvd10pIHsKCQkJCXRtcCA9IGw7CgkJCQl3aGlsZShtYXJrc1tsICsgMV0gPD0gMiptYXJrc1tsXSkKCQkJCQlsKys7CgkJCQlpZih0bXAgPT0gbCkKCQkJCQlsKys7CgkJCX0gZWxzZSBpZih1cCAtIGxvdyA+IDEgJiYgZmF2W3VwXSA+IGZhdlt1cCAtIDFdKXsKCQkJCWwgPSAxOwoJCQl9IGVsc2UgewoJCQkJbCA9IDA7CgkJCX0KCQkJaiA9IHVwOwoJCQlpZihERUJVRykKCQkJCWNvdXQgPDwgIko6ICIgPDwgaiA8PCAiLCBMOiAiIDw8IGwgPDwgZW5kbDsgCgkJfQoJCWNvdXQgPDwgKGRvdWJsZSlzdW0vbiA8PCBlbmRsOwoJfQoJcmV0dXJuIDA7Cn0=