//Δ_1004 #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; typedef double DB; const int N = 555; void cmin(int&x,int y){ if(x>y) x=y; } int dis(int x,int y,int xx,int yy){ int o=0; if(x>xx) o+=x-xx; else o+=xx-x; if(y>yy) o+=y-yy; else o+=yy-y; return (o+1)/2; } int n,a[N][N],m=25,f[33][33][33][4]; int cal(int x,int y,int z,int o){ int s=1,t=0,r=0; while(s<9){ t++; r+=o; if(r>=8*s*s){ s++; if(z) o+=3,z--; else{ if(y) o+=2,y--; else{ if(x) o++,x--; } } } } return t; } int solve(int sx,int sy){ int i,j,o,p,x=0,y=0,z=0; for(i=-3;i<=3;i=i+1){ if(i<0) o=3+i; else o=3-i; for(j=-o;j<=o;j=j+1){ if(i==0&&j==0) continue; p=a[sx+i][sy+j]; if(p==1) x++; if(p==2) y++; if(p==3) z++; } } return f[x][y][z][a[sx][sy]]; } int main() { int T,i,j,k,o,sx,sy; for(i=0;i<=m;i=i+1) for(j=0;i+j<=m;j=j+1) for(k=0;i+j+k<=m;k=k+1) for(o=1;o<=3;o=o+1) f[i][j][k][o]=cal(i,j,k,o); scanf("%d",&T); while(T--){ scanf("%d%d%d",&n,&sx,&sy); sx+=4,sy+=4; for(i=5;i<=n+4;i=i+1) for(j=5;j<=n+4;j=j+1) scanf("%d",&a[i][j]); o=1e9; for(i=5;i<=n+4;i=i+1) for(j=5;j<=n+4;j=j+1) cmin(o,solve(i,j)+dis(i,j,sx,sy)); printf("%d\n",o); for(i=5;i<=n+4;i=i+1) for(j=5;j<=n+4;j=j+1) a[i][j]=0; } return 0; }