#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
vector<int> bob(n);
for (int i = 0; i < n; i++) {
char ch;
cin >> ch;
bob[i] = ch - '0';
}
int a, b, c;
cin >> a >> b >> c;
// 统计Bob出拳中0、1、2的数量
int cnt0 = 0, cnt1 = 0, cnt2 = 0;
for (int i = 0; i < n; i++) {
if (bob[i] == 0) cnt0++;
else if (bob[i] == 1) cnt1++;
else cnt2++;
}
// 计算最大赢的回合数
int wins = min(b, cnt0) + min(c, cnt1) + min(a, cnt2);
cout << wins << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpbnQgVDsKICAgIGNpbiA+PiBUOwogICAgCiAgICB3aGlsZSAoVC0tKSB7CiAgICAgICAgaW50IG47CiAgICAgICAgY2luID4+IG47CiAgICAgICAgCiAgICAgICAgdmVjdG9yPGludD4gYm9iKG4pOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGNoYXIgY2g7CiAgICAgICAgICAgIGNpbiA+PiBjaDsKICAgICAgICAgICAgYm9iW2ldID0gY2ggLSAnMCc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGludCBhLCBiLCBjOwogICAgICAgIGNpbiA+PiBhID4+IGIgPj4gYzsKICAgICAgICAKICAgICAgICAvLyDnu5/orqFCb2Llh7rmi7PkuK0w44CBMeOAgTLnmoTmlbDph48KICAgICAgICBpbnQgY250MCA9IDAsIGNudDEgPSAwLCBjbnQyID0gMDsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBpZiAoYm9iW2ldID09IDApIGNudDArKzsKICAgICAgICAgICAgZWxzZSBpZiAoYm9iW2ldID09IDEpIGNudDErKzsKICAgICAgICAgICAgZWxzZSBjbnQyKys7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIOiuoeeul+acgOWkp+i1oueahOWbnuWQiOaVsAogICAgICAgIGludCB3aW5zID0gbWluKGIsIGNudDApICsgbWluKGMsIGNudDEpICsgbWluKGEsIGNudDIpOwogICAgICAgIAogICAgICAgIGNvdXQgPDwgd2lucyA8PCBlbmRsOwogICAgfQogICAgCiAgICByZXR1cm4gMDsKfQ==