#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;
// 对 Alice 的出拳进行排序,确保使用最大的值来赢得比赛
vector<int> alice_scores = {a, b, c};
sort(alice_scores.begin(), alice_scores.end()); // 升序排序
// 统计 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;
// 贪心策略:用 Alice 的最小能够战胜 Bob 当前出拳的数值
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
// Alice 用 alice_scores[i] 击败 bob_count[j] 中的数值
if (alice_scores[i] > j && bob_count[j] > 0) {
win_count++;
bob_count[j]--; // Bob 的该出拳已被击败,减少计数
break; // 一旦 Alice 赢了,跳到 Alice 下一个出拳
}
}
}
// 输出当前测试用例的 Alice 获胜的次数
cout << win_count << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpbnQgVDsKICAgIGNpbiA+PiBUOyAgLy8g6L6T5YWl5rWL6K+V55So5L6L5pWw6YePCiAgICB3aGlsZSAoVC0tKSB7CiAgICAgICAgaW50IG47CiAgICAgICAgY2luID4+IG47ICAvLyDor7vlj5bmr4/kuKrmtYvor5XnlKjkvovnmoTlm57lkIjmlbAKICAgICAgICB2ZWN0b3I8aW50PiBzKG4pOyAgLy8g5a2Y5YKoIEJvYiDnmoTlh7rmi7Pluo/liJcKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICAgICBjaW4gPj4gc1tpXTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8g6K+75Y+WIEFsaWNlIOeahOWHuuaLs+eahOS4ieenjeWPr+iDveeahOWAvAogICAgICAgIGludCBhLCBiLCBjOwogICAgICAgIGNpbiA+PiBhID4+IGIgPj4gYzsKCiAgICAgICAgLy8g5a+5IEFsaWNlIOeahOWHuuaLs+i/m+ihjOaOkuW6j++8jOehruS/neS9v+eUqOacgOWkp+eahOWAvOadpei1ouW+l+avlOi1mwogICAgICAgIHZlY3RvcjxpbnQ+IGFsaWNlX3Njb3JlcyA9IHthLCBiLCBjfTsKICAgICAgICBzb3J0KGFsaWNlX3Njb3Jlcy5iZWdpbigpLCBhbGljZV9zY29yZXMuZW5kKCkpOyAgLy8g5Y2H5bqP5o6S5bqPCgogICAgICAgIC8vIOe7n+iuoSBCb2Ig5Ye65ouz55qE6aKR546HCiAgICAgICAgdmVjdG9yPGludD4gYm9iX2NvdW50KDMsIDApOyAgLy8gQm9iIOeahOWHuuaLsyAwLCAxLCAyIOeahOiuoeaVsAogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgICAgIGJvYl9jb3VudFtzW2ldXSsrOwogICAgICAgIH0KCiAgICAgICAgaW50IHdpbl9jb3VudCA9IDA7CgogICAgICAgIC8vIOi0quW/g+etlueVpe+8mueUqCBBbGljZSDnmoTmnIDlsI/og73lpJ/miJjog5wgQm9iIOW9k+WJjeWHuuaLs+eahOaVsOWAvAogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgKytpKSB7CiAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgMzsgKytqKSB7CiAgICAgICAgICAgICAgICAvLyBBbGljZSDnlKggYWxpY2Vfc2NvcmVzW2ldIOWHu+i0pSBib2JfY291bnRbal0g5Lit55qE5pWw5YC8CiAgICAgICAgICAgICAgICBpZiAoYWxpY2Vfc2NvcmVzW2ldID4gaiAmJiBib2JfY291bnRbal0gPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgd2luX2NvdW50Kys7CiAgICAgICAgICAgICAgICAgICAgYm9iX2NvdW50W2pdLS07ICAvLyBCb2Ig55qE6K+l5Ye65ouz5bey6KKr5Ye76LSl77yM5YeP5bCR6K6h5pWwCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAvLyDkuIDml6YgQWxpY2Ug6LWi5LqG77yM6Lez5YiwIEFsaWNlIOS4i+S4gOS4quWHuuaLswogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyDovpPlh7rlvZPliY3mtYvor5XnlKjkvovnmoQgQWxpY2Ug6I636IOc55qE5qyh5pWwCiAgICAgICAgY291dCA8PCB3aW5fY291bnQgPDwgZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=