#include #define NMAX 111111 char s[NMAX]; int N, x[NMAX]; void ReadInput() { scanf("%d %s", &N, s + 1); for (int i = 1; i <= N; i++) scanf("%d", &x[i]); } int p[NMAX], np; long long Solve() { np = 0; for (int i = 1; i <= N; i++) if (s[i] == '1') p[np++] = i; int ans = x[p[0]] - x[1] + x[N] - x[p[np - 1]]; for (int i = 0; i + 1 < np; i++) { int lmax = 0; for (int j = p[i] + 1; j <= p[i + 1]; j++) if (x[j] - x[j - 1] > lmax) lmax = x[j] - x[j - 1]; ans += x[p[i + 1]] - x[p[i]] - lmax; } return ans; } int main() { // freopen("x.txt", "r", stdin); int T; scanf("%d", &T); while (T--) { ReadInput(); printf("%lld\n", Solve()); } return 0; }