#include<iostream> #include<cmath> using namespace std; #define INF 0x3ffffff int map[9][9]; int dp[15][9][9][9][9]; int s[9][9][9][9]; int ss(int i,int j,int k,int h) { int sum=0; for(;i<=k;i++) for(int x=j;x<=h;x++) sum+=map[i][x]; return sum*sum; } int min(int x,int y) { return x>y?y:x; } int d(int n,int x1,int y1,int x2,int y2) { if(dp[n][x1][y1][x2][y2]!=0) return dp[n][x1][y1][x2][y2]; if(n==0) return s[x1][y1][x2][y2]; if(n>x2-x1+y2-y1) return INF; int minnum=0x3ffffff,mink; for(int i=x1;i<x2;i++) { if(minnum>(mink=min(d(n-1,x1,y1,i,y2)+s[i+1][y1][x2][y2],s[x1][y1][i][y2]+d(n-1,i+1,y1,x2,y2)))) minnum=mink; } for(int j=y1;j<y2;j++) { if(minnum>(mink=min(d(n-1,x1,y1,x2,j)+s[x1][j+1][x2][y2],s[x1][y1][x2][j]+d(n-1,x1,j+1,x2,y2)))) minnum=mink; } dp[n][x1][y1][x2][y2]=minnum; return minnum; } int main() { int n,sum; double averge; cin>>n;sum=0; for(int i=1;i<=8;i++) for(int j=1;j<=8;j++) { cin>>map[i][j]; sum+=map[i][j]; } averge=sum*1.0/n;//s[1][1][8][8]=sum; for(int i=1;i<9;i++) for(int j=1;j<9;j++) for(int k=i;k<9;k++) for(int h=j;h<9;h++) { s[i][j][k][h]=ss(i,j,k,h); } double ans;//x的平分和 ans=d(n-1,1,1,8,8); ans=ans/n-averge*averge; printf("%.3lf/n",sqrt(ans)); //system("pause"); return 0; }