#include using namespace std; #define ll long long #define ul unsigned ll #define LL __int128_t #define db double #define DB double #define pii pair #define fi first #define se second #define mkpr make_pair #define vi vector #define vii vector #define eb emplace_back #define all(c) (c).begin(), (c).end() #define bit(x) (1 << (x)) #define bin(s, x) ((s) >> (x) & 1) #define req(i, l, r) for (int i(l), i##End(r); i < i##End; i = -~i) #define qer(i, l, r) for (int i(l), i##End(r); i > i##End; i = ~-i) #define rep(i, l, r) for (int i(l), i##End(r); i <= i##End; i = -~i) #define per(i, l, r) for (int i(l), i##End(r); i >= i##End; i = ~-i) #ifdef JYR #define errs(x) fputs(x, stderr) #define errm(x, ...) fprintf(stderr, x, __VA_ARGS__) #else #define errs(x) #define errm(x, ...) #endif template void chkmn(T &_a, U _b) { if (_a > _b) _a = _b; } template void chkmx(T &_a, U _b) { if (_a < _b) _a = _b; } bool Mbe; #define MC #define N 200005 #define mod 998244353 #define inf 0x3f3f3f3f #define INF 0x3f3f3f3f3f3f3f3f int n, ans; int c[2][2]; char s[2][N], t[2][N]; void calc(int o, int i) { assert(!c[o][0] && !c[o][1]); while (++i <= n && t[o][i] != '0') { c[o][s[o][i] - '0']++; } } void mslv() { scanf("%d%s%s%s%s", &n, s[0] + 1, s[1] + 1, t[0] + 1, t[1] + 1); calc(0, 0), calc(1, 0); rep(i, 1, n) { int u[2] = {s[0][i] - '0', s[1][i] - '0'}; if (t[0][i] == '0' && t[1][i] == '0') ans += u[0] == u[1], calc(0, i), calc(1, i); else if (t[0][i] == '0') { if (c[1][u[0]]) ans++, c[1][u[0]]--; else c[1][u[0] ^ 1]--; calc(0, i); } else if (t[1][i] == '0') { if (c[0][u[1]]) ans++, c[0][u[1]]--; else c[0][u[1] ^ 1]--; calc(1, i); } else { if (c[0][0] && c[1][0]) ans++, c[0][0]--, c[1][0]--; else if (c[0][1] && c[1][1]) ans++, c[0][1]--, c[1][1]--; else if (c[0][0]) c[0][0]--, c[1][1]--; else c[0][1]--, c[1][0]--; } } printf("%d\n", ans); } void mprw() {} void sprw() { ans = 0; } bool Med; int main() { freopen("edit.in", "r", stdin); freopen("edit.out", "w", stdout); mprw(); #ifdef MC int _; scanf("%d", &_); while (_--) sprw(), mslv(); #else mslv(); #endif errm("%.2lfMB %dms\n", abs(&Mbe - &Med) / 1048576., (int)(1000. * clock() / CLOCKS_PER_SEC)); return 0; }