#include using namespace std; #define ll long long constexpr int N = 1e5 + 5; int n, ans, flag = 1; char s[N], t[N], a[N], b[N]; int cnts[2], cntt[2]; void solve(){ flag = 1; ans = 0, cnts[0] = cnts[1] = cntt[0] = cntt[1] = 0; cin >> n >> (s + 1) >> (t + 1) >> (a + 1) >> (b + 1); for (int i = 1; i < n; i ++){ flag &= s[i] == s[i + 1]; } if (flag){ for (int i = 1; i <= n; i ++) ans += t[i] == s[i]; cout << ans << endl; return; } int i = 1, j = 1; while (1){ while (i <= n && a[i] != '0') cnts[s[i] - '0'] ++, i ++; while (j <= n && b[j] != '0'){ if (b[j] == '0') break; cntt[t[j] - '0'] ++, j ++; } // cout << i << " " << j << ":\n"; if (i < j){ cnts[s[i] - '0'] ++, i ++; // cout << cnts[0] << " " << cntt[0] << endl << cnts[1] << " "<< cntt[1] << endl; ans += min(cnts[0], cntt[0]) + min(cnts[1], cntt[1]); if (cnts[0] > cntt[0]) cntt[1] -= cnts[0] - cntt[0] + cnts[1], cntt[0] = cnts[0] = cnts[1] = 0; else if (cnts[1] > cntt[1]) cntt[0] -= cnts[1] - cntt[1] + cnts[0], cntt[1] = cnts[0] = cnts[1] = 0; else cntt[0] -= cnts[0], cntt[1] -= cnts[1], cnts[0] = cnts[1] = 0; // cout << i << j << endl; // cout << ans << endl; // cout << cnts[0] << " " << cntt[0] << endl << cnts[1] << " "<< cntt[1] << endl << endl; continue; } else if (i > j){ // cout << cnts[0] << " " << cntt[0] << endl << cnts[1] << " "<< cntt[1] << endl; cntt[t[j] - '0'] ++, j ++; ans += min(cnts[0], cntt[0]) + min(cnts[1], cntt[1]); if (cntt[0] > cnts[0]) cnts[1] -= cntt[0] - cnts[0] + cntt[1], cntt[0] = cnts[0] = cntt[1] = 0; else if (cntt[1] > cnts[1]) cnts[0] -= cntt[1] - cnts[1] + cntt[0], cntt[1] = cntt[0] = cnts[1] = 0; else cnts[0] -= cntt[0], cnts[1] -= cntt[1], cntt[0] = cntt[1] = 0; // cout << ans << endl; // cout << cnts[0] << " " << cntt[0] << endl << cnts[1] << " "<< cntt[1] << endl; continue; } else if (i == j){ // cout << cnts[0] << " " << cntt[0] << endl << cnts[1] << " "<< cntt[1] << endl; ans += min(cnts[0], cntt[0]) + min(cnts[1], cntt[1]); cntt[0] = cnts[0] = cntt[1] = cnts[1] = 0; if (i > n) break; ans += s[i] == t[j], i ++, j ++; } // cout << ans << endl; // cout << i << j << endl; // cout << cnts[0] << cntt[0] << cnts[1] << cntt[1] << endl; } cout << ans << endl; } int main(){ ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); freopen("edit.in", "r", stdin); freopen("edit.out", "w", stdout); // clock_t st = clock(); int T; cin >> T; // cout << T << endl; while (T --) solve(); // cout << 1. * (clock() - st) / CLOCKS_PER_SEC << endl; return 0; }