#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int main() {
    int T;
    cin >> T;  // 输入测试用例数量
    while (T--) {
        int n;
        cin >> n;  // 回合数
        vector<int> s(n);  // Bob的出拳序列
        for (int i = 0; i < n; ++i) {
            cin >> s[i];
        }
 
        // Alice的出拳数量
        int a, b, c;
        cin >> a >> b >> c;
 
        // 统计Bob出拳的数量
        vector<int> bob_count(3, 0);  // Bob出拳的0, 1, 2的计数
        for (int i = 0; i < n; ++i) {
            bob_count[s[i]]++;
        }
 
        int win_count = 0;
 
        // 1. Alice用0打Bob的2
        int match = min(a, bob_count[2]);
        win_count += match;
        a -= match;
        bob_count[2] -= match;
 
        // 2. Alice用1打Bob的0
        match = min(b, bob_count[0]);
        win_count += match;
        b -= match;
        bob_count[0] -= match;
 
        // 3. Alice用2打Bob的1
        match = min(c, bob_count[1]);
        win_count += match;
        c -= match;
        bob_count[1] -= match;
 
        // 4. 剩余的Alice用0打Bob的1
        match = min(a, bob_count[1]);
        win_count += match;
        a -= match;
        bob_count[1] -= match;
 
        // 5. 剩余的Alice用1打Bob的2
        match = min(b, bob_count[2]);
        win_count += match;
        b -= match;
        bob_count[2] -= match;
 
        // 6. 剩余的Alice用2打Bob的0
        match = min(c, bob_count[0]);
        win_count += match;
 
        cout << win_count << endl;
    }
 
    return 0;
}
 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpbnQgVDsKICAgIGNpbiA+PiBUOyAgLy8g6L6T5YWl5rWL6K+V55So5L6L5pWw6YePCiAgICB3aGlsZSAoVC0tKSB7CiAgICAgICAgaW50IG47CiAgICAgICAgY2luID4+IG47ICAvLyDlm57lkIjmlbAKICAgICAgICB2ZWN0b3I8aW50PiBzKG4pOyAgLy8gQm9i55qE5Ye65ouz5bqP5YiXCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICAgICAgY2luID4+IHNbaV07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIEFsaWNl55qE5Ye65ouz5pWw6YePCiAgICAgICAgaW50IGEsIGIsIGM7CiAgICAgICAgY2luID4+IGEgPj4gYiA+PiBjOwogICAgICAgIAogICAgICAgIC8vIOe7n+iuoUJvYuWHuuaLs+eahOaVsOmHjwogICAgICAgIHZlY3RvcjxpbnQ+IGJvYl9jb3VudCgzLCAwKTsgIC8vIEJvYuWHuuaLs+eahDAsIDEsIDLnmoTorqHmlbAKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICAgICBib2JfY291bnRbc1tpXV0rKzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaW50IHdpbl9jb3VudCA9IDA7CgogICAgICAgIC8vIDEuIEFsaWNl55SoMOaJk0JvYueahDIKICAgICAgICBpbnQgbWF0Y2ggPSBtaW4oYSwgYm9iX2NvdW50WzJdKTsKICAgICAgICB3aW5fY291bnQgKz0gbWF0Y2g7CiAgICAgICAgYSAtPSBtYXRjaDsKICAgICAgICBib2JfY291bnRbMl0gLT0gbWF0Y2g7CgogICAgICAgIC8vIDIuIEFsaWNl55SoMeaJk0JvYueahDAKICAgICAgICBtYXRjaCA9IG1pbihiLCBib2JfY291bnRbMF0pOwogICAgICAgIHdpbl9jb3VudCArPSBtYXRjaDsKICAgICAgICBiIC09IG1hdGNoOwogICAgICAgIGJvYl9jb3VudFswXSAtPSBtYXRjaDsKCiAgICAgICAgLy8gMy4gQWxpY2XnlKgy5omTQm9i55qEMQogICAgICAgIG1hdGNoID0gbWluKGMsIGJvYl9jb3VudFsxXSk7CiAgICAgICAgd2luX2NvdW50ICs9IG1hdGNoOwogICAgICAgIGMgLT0gbWF0Y2g7CiAgICAgICAgYm9iX2NvdW50WzFdIC09IG1hdGNoOwoKICAgICAgICAvLyA0LiDliankvZnnmoRBbGljZeeUqDDmiZNCb2LnmoQxCiAgICAgICAgbWF0Y2ggPSBtaW4oYSwgYm9iX2NvdW50WzFdKTsKICAgICAgICB3aW5fY291bnQgKz0gbWF0Y2g7CiAgICAgICAgYSAtPSBtYXRjaDsKICAgICAgICBib2JfY291bnRbMV0gLT0gbWF0Y2g7CgogICAgICAgIC8vIDUuIOWJqeS9meeahEFsaWNl55SoMeaJk0JvYueahDIKICAgICAgICBtYXRjaCA9IG1pbihiLCBib2JfY291bnRbMl0pOwogICAgICAgIHdpbl9jb3VudCArPSBtYXRjaDsKICAgICAgICBiIC09IG1hdGNoOwogICAgICAgIGJvYl9jb3VudFsyXSAtPSBtYXRjaDsKCiAgICAgICAgLy8gNi4g5Ymp5L2Z55qEQWxpY2XnlKgy5omTQm9i55qEMAogICAgICAgIG1hdGNoID0gbWluKGMsIGJvYl9jb3VudFswXSk7CiAgICAgICAgd2luX2NvdW50ICs9IG1hdGNoOwogICAgICAgIAogICAgICAgIGNvdXQgPDwgd2luX2NvdW50IDw8IGVuZGw7CiAgICB9CiAgICAKICAgIHJldHVybiAwOwp9Cg==