#include <bits/stdc++.h>
using namespace std;
#define read(type) readInt<type>() // Fast read
#define ll long long
#define nL "n"
#define pb push_back
#define mk make_pair
#define pii pair<int, int>
#define a first
#define b second
#define vi vector<int>
#define all(x) (x).begin(), (x).end()
#define umap unordered_map
#define uset unordered_set
#define MOD 1000000007
#define imax INT_MAX
#define imin INT_MIN
#define exp 1e9
#define sz(x) (int((x).size()))
void solve() {
int len; cin >> len;
string st; cin >> st;
vector<int> mags; for(auto i = 0; i < len; i++) {int d; cin >> d; mags.pb(d);}
int ans = 0;
int i = 0;
while(i <= len) {
if (st[i] == 1) {ans+=mags[i]; i++; continue;}
cout << "continued with " << i << endl;
ans += mags[i];
cout << ans << endl;
int j = i+1;
int minVal = mags[i];
while (j <= len) {
if (st[j] == '1') {
ans += mags[j];
minVal = min(minVal, mags[j]);
j++;
} else {break;}
}
ans -= minVal;
i = j;
}
cout << ans << endl;
}
int32_t main()
{
ios_base::sync_with_stdio(false);
cin.tie(null);
int t; cin >> t;
while (t--) {
solve();
}
return 0;
}