func_code_string: #include <bits/stdc++.h>   using namespace std;   char c[55][55];   int n, i, j, m1, m2, m3, m4;   int main() {     scanf( %d , &n);     for (i = 1; i <= n; i++) scanf( %s , c[i] + 1);     m1 = m3 = n + 1;     for (i = 1; i <= n; i++)       for (j = 1; j <= n; j++)         if (c[i][j] ==  4 ) {           m1 = min(m1, i);           m2 = max(m2, i);           m3 = min(m3, j);           m4 = max(m4, j);         }     for (i = m1; i <= m2; i++) {       for (j = m3; j <= m4; j++)         if (c[i][j] !=  4 ) break;       if (j <= m4) break;     }     if (i <= m2) {       puts( No );       return 0;     }     for (i = 1; i <= n; i++) {       for (j = 1; j <= n; j++)         if (c[i][j] !=  0  &&             (i < m1 - 1 || i > m2 + 1 || j < m3 - 1 || j > m4 + 1))           break;       if (j <= n) break;     }     if (i <= n) {       puts( No );       return 0;     }     for (i = m1; i <= m2; i++)       if (m3 > 1 && c[i][m3 - 1] !=  2  || m4 < n && c[i][m4 + 1] !=  2 ) break;     if (i <= m2) {       puts( No );       return 0;     }     for (i = m3; i <= m4; i++)       if (m1 > 1 && c[m1 - 1][i] !=  2  || m2 < n && c[m2 + 1][i] !=  2 ) break;     if (i <= m4) {       puts( No );       return 0;     }     if (m1 > 1 && m3 > 1 && c[m1 - 1][m3 - 1] !=  1  ||         m1 > 1 && m4 < n && c[m1 - 1][m4 + 1] !=  1  ||         m2 < n && m3 > 1 && c[m2 + 1][m3 - 1] !=  1  ||         m2 < n && m4 < n && c[m2 + 1][m4 + 1] !=  1 ) {       puts( No );       return 0;     }     puts( Yes );     return 0;   }   