#include using namespace std; const int N=1e5+5; int T; int n; string s1,s2,t1,t2; int cnt1[2],cnt2[2]; int main(){ freopen("edit.in","r",stdin); freopen("edit.out","w",stdout); ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>T; while(T--){ cin>>n; cin>>s1>>s2>>t1>>t2; s1=" "+s1,s2=" "+s2; t1=" "+t1,t2=" "+t2; int i=1,j=1,ans=0; cnt1[0]=cnt1[1]=0; cnt2[0]=cnt2[1]=0; while(i<=n || j<=n){ while(t1[i]!='0' && i<=n){ cnt1[s1[i]-'0']++; i++; } while(t2[j]!='0' && j<=n){ cnt2[s2[j]-'0']++; j++; } if(ji){ cnt1[s1[i]-'0']++; int mn0=min(cnt1[0],cnt2[0]),mn1=min(cnt1[1],cnt2[1]); ans+=mn0+mn1; cnt1[0]-=mn0; cnt1[1]-=mn1; cnt2[0]-=mn0; cnt2[1]-=mn1; if(cnt1[0]) cnt2[1]-=cnt1[0]; if(cnt1[1]) cnt2[0]-=cnt1[1]; cnt1[0]=cnt1[1]=0; i++; } else{ if(i<=n) ans+=(s1[i]==s2[j]); int mn0=min(cnt1[0],cnt2[0]),mn1=min(cnt1[1],cnt2[1]); ans+=mn0+mn1; cnt1[0]-=mn0; cnt1[1]-=mn1; cnt2[0]-=mn0; cnt2[1]-=mn1; cnt1[0]=cnt1[1]=0; cnt2[0]=cnt2[1]=0; i++,j++; } } cout<