#include <iostream>
#include <vector>
using namespace std;
 
int main() {
    int T;
    cin >> T;  // 测试用例数量
    while (T--) {
        int n;
        cin >> n;  // 回合数
        vector<int> s(n);  // Bob的出拳序列
        // 统计Bob出拳中0、1、2的数量
        int bob0 = 0, bob1 = 0, bob2 = 0;
        for (int i = 0; i < n; ++i) {
            cin >> s[i];
            if (s[i] == 0) bob0++;
            else if (s[i] == 1) bob1++;
            else bob2++;
        }
 
        // Alice的出拳数量:a是0的数量,b是1的数量,c是2的数量
        int a, b, c;
        cin >> a >> b >> c;
 
        int win = 0;
 
        // 1. Alice用0打Bob的2
        int match = min(a, bob2);
        win += match;
        a -= match;  // 剩余0的数量
        bob2 -= match;  // 剩余Bob的2
 
        // 2. Alice用1打Bob的0
        match = min(b, bob0);
        win += match;
        b -= match;  // 剩余1的数量
        bob0 -= match;  // 剩余Bob的0
 
        // 3. Alice用2打Bob的1
        match = min(c, bob1);
        win += match;
        c -= match;  // 剩余2的数量
        bob1 -= match;  // 剩余Bob的1
 
        // 4. 剩余的 Alice 出拳和 Bob 的出拳进行匹配(逆向匹配)
        // 4.1 Alice用剩余的0去打Bob的1
        match = min(a, bob1);
        win += match;
        a -= match;  // 剩余0的数量
        bob1 -= match;  // 剩余Bob的1
 
        // 4.2 Alice用剩余的1去打Bob的2
        match = min(b, bob2);
        win += match;
        b -= match;  // 剩余1的数量
        bob2 -= match;  // 剩余Bob的2
 
        // 4.3 Alice用剩余的2去打Bob的0
        match = min(c, bob0);
        win += match;
 
        cout << win << endl;
    }
    return 0;
}
 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpbnQgVDsKICAgIGNpbiA+PiBUOyAgLy8g5rWL6K+V55So5L6L5pWw6YePCiAgICB3aGlsZSAoVC0tKSB7CiAgICAgICAgaW50IG47CiAgICAgICAgY2luID4+IG47ICAvLyDlm57lkIjmlbAKICAgICAgICB2ZWN0b3I8aW50PiBzKG4pOyAgLy8gQm9i55qE5Ye65ouz5bqP5YiXCiAgICAgICAgLy8g57uf6K6hQm9i5Ye65ouz5LitMOOAgTHjgIEy55qE5pWw6YePCiAgICAgICAgaW50IGJvYjAgPSAwLCBib2IxID0gMCwgYm9iMiA9IDA7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICAgICAgY2luID4+IHNbaV07CiAgICAgICAgICAgIGlmIChzW2ldID09IDApIGJvYjArKzsKICAgICAgICAgICAgZWxzZSBpZiAoc1tpXSA9PSAxKSBib2IxKys7CiAgICAgICAgICAgIGVsc2UgYm9iMisrOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBBbGljZeeahOWHuuaLs+aVsOmHj++8mmHmmK8w55qE5pWw6YeP77yMYuaYrzHnmoTmlbDph4/vvIxj5pivMueahOaVsOmHjwogICAgICAgIGludCBhLCBiLCBjOwogICAgICAgIGNpbiA+PiBhID4+IGIgPj4gYzsKICAgICAgICAKICAgICAgICBpbnQgd2luID0gMDsKCiAgICAgICAgLy8gMS4gQWxpY2XnlKgw5omTQm9i55qEMgogICAgICAgIGludCBtYXRjaCA9IG1pbihhLCBib2IyKTsKICAgICAgICB3aW4gKz0gbWF0Y2g7CiAgICAgICAgYSAtPSBtYXRjaDsgIC8vIOWJqeS9mTDnmoTmlbDph48KICAgICAgICBib2IyIC09IG1hdGNoOyAgLy8g5Ymp5L2ZQm9i55qEMgoKICAgICAgICAvLyAyLiBBbGljZeeUqDHmiZNCb2LnmoQwCiAgICAgICAgbWF0Y2ggPSBtaW4oYiwgYm9iMCk7CiAgICAgICAgd2luICs9IG1hdGNoOwogICAgICAgIGIgLT0gbWF0Y2g7ICAvLyDliankvZkx55qE5pWw6YePCiAgICAgICAgYm9iMCAtPSBtYXRjaDsgIC8vIOWJqeS9mUJvYueahDAKCiAgICAgICAgLy8gMy4gQWxpY2XnlKgy5omTQm9i55qEMQogICAgICAgIG1hdGNoID0gbWluKGMsIGJvYjEpOwogICAgICAgIHdpbiArPSBtYXRjaDsKICAgICAgICBjIC09IG1hdGNoOyAgLy8g5Ymp5L2ZMueahOaVsOmHjwogICAgICAgIGJvYjEgLT0gbWF0Y2g7ICAvLyDliankvZlCb2LnmoQxCiAgICAgICAgCiAgICAgICAgLy8gNC4g5Ymp5L2Z55qEIEFsaWNlIOWHuuaLs+WSjCBCb2Ig55qE5Ye65ouz6L+b6KGM5Yy56YWN77yI6YCG5ZCR5Yy56YWN77yJCiAgICAgICAgLy8gNC4xIEFsaWNl55So5Ymp5L2Z55qEMOWOu+aJk0JvYueahDEKICAgICAgICBtYXRjaCA9IG1pbihhLCBib2IxKTsKICAgICAgICB3aW4gKz0gbWF0Y2g7CiAgICAgICAgYSAtPSBtYXRjaDsgIC8vIOWJqeS9mTDnmoTmlbDph48KICAgICAgICBib2IxIC09IG1hdGNoOyAgLy8g5Ymp5L2ZQm9i55qEMQoKICAgICAgICAvLyA0LjIgQWxpY2XnlKjliankvZnnmoQx5Y675omTQm9i55qEMgogICAgICAgIG1hdGNoID0gbWluKGIsIGJvYjIpOwogICAgICAgIHdpbiArPSBtYXRjaDsKICAgICAgICBiIC09IG1hdGNoOyAgLy8g5Ymp5L2ZMeeahOaVsOmHjwogICAgICAgIGJvYjIgLT0gbWF0Y2g7ICAvLyDliankvZlCb2LnmoQyCgogICAgICAgIC8vIDQuMyBBbGljZeeUqOWJqeS9meeahDLljrvmiZNCb2LnmoQwCiAgICAgICAgbWF0Y2ggPSBtaW4oYywgYm9iMCk7CiAgICAgICAgd2luICs9IG1hdGNoOwogICAgICAgIAogICAgICAgIGNvdXQgPDwgd2luIDw8IGVuZGw7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=