#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=