/********************************************************************* Problem: Author:hydd Date: *********************************************************************/ #include #include #include #include #define File(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout); using namespace std; int T,n,x,y,a[510][510],b[1100]; inline int myabs(int x){ if (x<0) x=-x; return x; } int main(){ scanf("%d",&T); while (T--){ 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 ans=2147483647; for (int i=1;i<=n;i++) for (int j=1;j<=n;j++){ int dis=myabs(i-x)+myabs(j-y); int tot=(dis+1)/2,cnt=0; b[++cnt]=a[i][j]; for (int u=1;u<=3;u++) for (int v=1;u+v<=3;v++){ if (i-u>=1&&j-v>=1) b[++cnt]=a[i-u][j-v]; if (i-u>=1&&j+v<=n) b[++cnt]=a[i-u][j+v]; if (i+u<=n&&j-v>=1) b[++cnt]=a[i+u][j-v]; if (i+u<=n&&j+v<=n) b[++cnt]=a[i+u][j+v]; } for (int v=1;v<=3;v++){ if (j-v>=1) b[++cnt]=a[i][j-v]; if (j+v<=n) b[++cnt]=a[i][j+v]; } for (int u=1;u<=3;u++){ if (i-u>=1) b[++cnt]=a[i-u][j]; if (i+u<=n) b[++cnt]=a[i+u][j]; } sort(b+2,b+cnt+1,greater()); int eve_eat=0; int sum_eat=0; for (int t=1;t<9;t++){ int tonxt=8*t*t-sum_eat; eve_eat+=b[t]; if (tonxt<0) continue; int newdel=(tonxt+eve_eat-1)/eve_eat; tot+=newdel; sum_eat+=newdel*eve_eat; } ans=min(ans,tot); // if (tot==39) printf("%d %d\n",i,j); } printf("%d\n",ans); } return 0; }