#include using namespace std; #define int long long #define double long double #define endl '\n' mt19937 rnd(537462565); int cas,n; char s[2][100009],t[2][100009]; signed main(){ freopen("edit.in","r",stdin); freopen("edit.out","w",stdout); ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); cin>>cas; while(cas--){ cin>>n; cin>>(s[0]+1)>>(s[1]+1)>>(t[0]+1)>>(t[1]+1);n++; s[0][n]='0';s[1][n]='1';t[0][n]=t[1][n]='0'; int cnt[2][2],ans=0;cnt[0][0]=cnt[0][1]=cnt[1][0]=cnt[1][1]=0; for(int j=1;j<=n&&t[0][j]=='1';j++)cnt[0][s[0][j]-'0']++; for(int j=1;j<=n&&t[1][j]=='1';j++)cnt[1][s[1][j]-'0']++; for(int i=1,lst=0;i<=n;i++){ if(t[0][i]=='0'&&t[1][i]=='1'){ int mn[2]={min(cnt[0][0],cnt[1][0]),min(cnt[0][1],cnt[1][1])},len=i-lst-1; cnt[0][0]=cnt[0][1]=0; if(mn[0]+mn[1]<=len)cnt[1][0]-=mn[0],cnt[1][1]-=mn[1],ans+=mn[0]+mn[1]; else cnt[1][0]-=max(0ll,len-mn[1]),cnt[1][1]-=max(0ll,len-mn[0]),ans+=len; if(cnt[1][s[0][i]-'0'])cnt[1][s[0][i]-'0']--,ans++; lst=i; for(int j=i+1;j<=n&&t[0][j]=='1';j++)cnt[0][s[0][j]-'0']++; }else if(t[0][i]=='1'&&t[1][i]=='0'){ int mn[2]={min(cnt[0][0],cnt[1][0]),min(cnt[0][1],cnt[1][1])},len=i-lst-1; cnt[1][0]=cnt[1][1]=0; if(mn[0]+mn[1]<=len)cnt[0][0]-=mn[0],cnt[0][1]-=mn[1],ans+=mn[0]+mn[1]; else cnt[0][0]-=max(0ll,len-mn[1]),cnt[0][1]-=max(0ll,len-mn[0]),ans+=len; if(cnt[0][s[1][i]-'0'])cnt[0][s[1][i]-'0']--,ans++; lst=i; for(int j=i+1;j<=n&&t[1][j]=='1';j++)cnt[1][s[1][j]-'0']++; }else if(t[0][i]=='0'&&t[1][i]=='0'){ int mn[2]={min(cnt[0][0],cnt[1][0]),min(cnt[0][1],cnt[1][1])},len=i-lst-1; cnt[0][0]=cnt[0][1]=cnt[1][0]=cnt[1][1]=0; ans+=min(mn[0]+mn[1],len); ans+=(s[0][i]==s[1][i]); lst=i; for(int j=i+1;j<=n&&t[0][j]=='1';j++)cnt[0][s[0][j]-'0']++; for(int j=i+1;j<=n&&t[1][j]=='1';j++)cnt[1][s[1][j]-'0']++; } } cout<