#include #include using namespace std; int d(int x1,int y1,int x2,int y2) { int dx=x1-x2; if(dx<0) { dx=-dx; } int dy=y1-y2; if(dy<0) { dy=-dy; } return dx+dy; } int a[505][505]; priority_queue q; int main() { int t; scanf("%d",&t); while(t--) { int n,x,y; scanf("%d%d%d",&n,&x,&y); for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { scanf("%d",&a[i][j]); } } int answer=1000000000; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { while(!q.empty()) { q.pop(); } int ans=(d(i,j,x,y)+1)>>1; for(int ii=i-3;ii<=i+3;ii++) { for(int jj=j-3;jj<=j+3;jj++) { if(ii<1||ii>n||jj<1||jj>n) { continue; } if(ii==i&&jj==j) { continue; } if(d(i,j,ii,jj)<=3) { q.push(a[ii][jj]); } } } int numf=0,nump=1,inc=a[i][j]; while(nump<9) { ans++; numf+=inc; while(numf>=8*nump*nump) { nump++; if(!q.empty()) { inc+=q.top(); q.pop(); } } } if(ans