#include <iostream>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
vector<int> s(n);
int cnt0 = 0, cnt1 = 0, cnt2 = 0;
// 统计 Bob 的出拳数量
for (int i = 0; i < n; ++i) {
cin >> s[i];
if (s[i] == 0) cnt0++;
else if (s[i] == 1) cnt1++;
else cnt2++;
}
// Alice 的出拳数量
int a, b, c;
cin >> a >> b >> c;
int res = 0;
// 1. Alice 用 0 打 Bob 的 2
int match = min(a, cnt2);
res += match;
a -= match;
cnt2 -= match;
// 2. Alice 用 1 打 Bob 的 0
match = min(b, cnt0);
res += match;
b -= match;
cnt0 -= match;
// 3. Alice 用 2 打 Bob 的 1
match = min(c, cnt1);
res += match;
c -= match;
cnt1 -= match;
// 4. 剩余的 Alice 用 0 打 Bob 的 1
match = min(a, cnt1);
res += match;
a -= match;
cnt1 -= match;
// 5. 剩余的 Alice 用 1 打 Bob 的 2
match = min(b, cnt2);
res += match;
b -= match;
cnt2 -= match;
// 6. 剩余的 Alice 用 2 打 Bob 的 0
match = min(c, cnt0);
res += match;
cout << res << '\n';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgCiAgICBpbnQgVDsKICAgIGNpbiA+PiBUOwogICAgd2hpbGUgKFQtLSkgewogICAgICAgIGludCBuOwogICAgICAgIGNpbiA+PiBuOwogICAgICAgIAogICAgICAgIHZlY3RvcjxpbnQ+IHMobik7CiAgICAgICAgaW50IGNudDAgPSAwLCBjbnQxID0gMCwgY250MiA9IDA7CiAgICAgICAgCiAgICAgICAgLy8g57uf6K6hIEJvYiDnmoTlh7rmi7PmlbDph48KICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICAgICBjaW4gPj4gc1tpXTsKICAgICAgICAgICAgaWYgKHNbaV0gPT0gMCkgY250MCsrOwogICAgICAgICAgICBlbHNlIGlmIChzW2ldID09IDEpIGNudDErKzsKICAgICAgICAgICAgZWxzZSBjbnQyKys7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIEFsaWNlIOeahOWHuuaLs+aVsOmHjwogICAgICAgIGludCBhLCBiLCBjOwogICAgICAgIGNpbiA+PiBhID4+IGIgPj4gYzsKICAgICAgICAKICAgICAgICBpbnQgcmVzID0gMDsKICAgICAgICAKICAgICAgICAvLyAxLiBBbGljZSDnlKggMCDmiZMgQm9iIOeahCAyCiAgICAgICAgaW50IG1hdGNoID0gbWluKGEsIGNudDIpOwogICAgICAgIHJlcyArPSBtYXRjaDsKICAgICAgICBhIC09IG1hdGNoOwogICAgICAgIGNudDIgLT0gbWF0Y2g7CiAgICAgICAgCiAgICAgICAgLy8gMi4gQWxpY2Ug55SoIDEg5omTIEJvYiDnmoQgMAogICAgICAgIG1hdGNoID0gbWluKGIsIGNudDApOwogICAgICAgIHJlcyArPSBtYXRjaDsKICAgICAgICBiIC09IG1hdGNoOwogICAgICAgIGNudDAgLT0gbWF0Y2g7CiAgICAgICAgCiAgICAgICAgLy8gMy4gQWxpY2Ug55SoIDIg5omTIEJvYiDnmoQgMQogICAgICAgIG1hdGNoID0gbWluKGMsIGNudDEpOwogICAgICAgIHJlcyArPSBtYXRjaDsKICAgICAgICBjIC09IG1hdGNoOwogICAgICAgIGNudDEgLT0gbWF0Y2g7CiAgICAgICAgCiAgICAgICAgLy8gNC4g5Ymp5L2Z55qEIEFsaWNlIOeUqCAwIOaJkyBCb2Ig55qEIDEKICAgICAgICBtYXRjaCA9IG1pbihhLCBjbnQxKTsKICAgICAgICByZXMgKz0gbWF0Y2g7CiAgICAgICAgYSAtPSBtYXRjaDsKICAgICAgICBjbnQxIC09IG1hdGNoOwogICAgICAgIAogICAgICAgIC8vIDUuIOWJqeS9meeahCBBbGljZSDnlKggMSDmiZMgQm9iIOeahCAyCiAgICAgICAgbWF0Y2ggPSBtaW4oYiwgY250Mik7CiAgICAgICAgcmVzICs9IG1hdGNoOwogICAgICAgIGIgLT0gbWF0Y2g7CiAgICAgICAgY250MiAtPSBtYXRjaDsKICAgICAgICAKICAgICAgICAvLyA2LiDliankvZnnmoQgQWxpY2Ug55SoIDIg5omTIEJvYiDnmoQgMAogICAgICAgIG1hdGNoID0gbWluKGMsIGNudDApOwogICAgICAgIHJlcyArPSBtYXRjaDsKICAgICAgICAKICAgICAgICBjb3V0IDw8IHJlcyA8PCAnXG4nOwogICAgfQogICAgCiAgICByZXR1cm4gMDsKfQo=