Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma warning(disable:4786)
- #include<iostream>
- #include<cstdio>
- #include<algorithm>
- #include<vector>
- #include<set>
- #include<map>
- #include<functional>
- #include<string>
- #include<cstring>
- #include<cstdlib>
- #include<queue>
- #include<utility>
- #include<fstream>
- #include<sstream>
- #include<cmath>
- #include<stack>
- #include<cstdio>
- #include <ctime>
- using namespace std;
- #define MEM(a,b) memset(a,(b),sizeof(a))
- #define MAX(a,b) ((a) > (b) ? (a) : (b))
- #define MIN(a,b) ((a) < (b) ? (a) : (b))
- #define istr(S) istringstream sin(S)
- #define MP make_pair
- #define pb push_back
- #define inf 10000
- #define MAXN 1000000
- //typedef long long LL;
- //typedef __int64 LL;
- typedef pair<int,int> pi;
- typedef vector<int> vi;
- typedef vector<string> vs;
- typedef vector<double> vd;
- typedef vector<pi> vpi;
- int R,C;
- char A[3005],B[3005];
- //short best1[2][3005];
- //short best2[3005][3005];
- int main()
- {
- int i,j,tests,cs=0;
- scanf("%d",&tests);
- while(tests--)
- {
- scanf("%d%s",&R,A);
- scanf("%d%s",&C,B);
- int ans1 = 0;
- int ans2,u1=0,v1=0,u,v;
- for(i=0;A[i];i++)
- if(A[i]=='1')
- u1++;
- for(i=0;B[i];i++)
- if(B[i]=='1')
- v1++;
- ans1 = (u1+v1-1)*(u1>0 && v1>0);
- i=j=0;
- while(i<R && A[i]=='1')
- i++;
- while(j<C && B[j]=='1')
- j++;
- u=i,v=j;
- ans2 = MIN(u,v);
- i=R-1,j=C-1;
- int uu=0,vv=0;
- while(i>u && A[i]=='1')
- i--,uu++;
- while(j>v && B[j]=='1')
- j--,vv++;
- if(u==R && v==C)
- ans2 = R+C-1;
- else if(u==R)
- ans2 = v1;
- else if(v==C)
- ans2 = u1;
- else
- ans2+=MIN(uu,vv);
- printf("%d %d\n",ans1,ans2);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement