#include using namespace std; const int MAXSIZE=1e5+5; int T,n; int s1[MAXSIZE],s2[MAXSIZE],t1[MAXSIZE],t2[MAXSIZE]; int cnt1[2],cnt2[2]; void init() { memset(s1,0,sizeof(s1)); memset(s2,0,sizeof(s2)); memset(t1,0,sizeof(t1)); memset(t2,0,sizeof(t2)); cin>>n; for(int i=1;i<=n;i++){ char c; cin>>c; s1[i]=c-48; } for(int i=1;i<=n;i++){ char c; cin>>c; s2[i]=c-48; } for(int i=1;i<=n;i++){ char c; cin>>c; t1[i]=c-48; } for(int i=1;i<=n;i++){ char c; cin>>c; t2[i]=c-48; } } int min(int a,int b){ return (a>T; while(T--) { init(); for(int i=1;i<=n;i++){ if(!(t1[i-1]|t1[i+1])) t1[i]=0; if(!(t2[i-1]|t2[i+1])) t2[i]=0; } long long ans=0; for(int l=1,r1=0,r2=0;l<=n;){ if(r1cnt2[0]){ ans+=1ll*cnt2[0], cnt1[0]-=cnt2[0], cnt2[0]=0, cnt2[1]-=cnt1[0], cnt1[0]=0; } if(cnt1[1]>cnt2[1]){ ans+=1ll*cnt2[1], cnt1[1]-=cnt2[1], cnt2[1]=0, cnt2[0]-=cnt1[1], cnt1[1]=0; } l=r1+1; } else { if(cnt2[0]<=cnt1[0]){ ans+=1ll*cnt2[0], cnt1[0]-=cnt2[0], cnt2[0]=0; } if(cnt2[1]<=cnt1[1]){ ans+=1ll*cnt2[1], cnt1[1]-=cnt2[1], cnt2[1]=0; } if(cnt2[0]>cnt1[0]){ ans+=1ll*cnt1[0], cnt2[0]-=cnt1[0], cnt1[0]=0, cnt1[1]-=cnt2[0], cnt2[0]=0; } if(cnt2[1]>cnt1[1]){ ans+=1ll*cnt1[1], cnt2[1]-=cnt1[1], cnt1[1]=0, cnt1[0]-=cnt2[1], cnt2[1]=0; } l=r2+1; } //cout<