func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 2005, maxm = 4000005;   const double pi = 3.141592653589793;   const int dx[] = {-1, -1, -1, 0, 1, 1, 1, 0};   const int dy[] = {-1, 0, 1, 1, 1, 0, -1, -1};   int s[maxn][maxn], v[maxn][maxn], f[maxn][maxn];   int qx[maxm], qy[maxm];   int n, cir, rec;   double dis(double x, double y) { return sqrt(x * x + y * y); }   int main() {     int i, j, k, a, b, x, y, h, t, tx, ty;     double sumx, sumy, maxd, mind;     scanf( %d , &n);     for (i = 1; i <= n; ++i)       for (j = 1; j <= n; ++j) {         scanf( %d , &x);         if (x == 0) continue;         for (a = -2; a <= 2; ++a)           for (b = -2; b <= 2; ++b)             if (i + a > 0 && i + a <= n && j + b > 0 && j + b <= n)               ++s[i + a][j + b];       }     for (i = 1; i <= n; ++i)       for (j = 1; j <= n; ++j) {         s[i][j] = s[i][j] > 15 ? 1 : 0;         v[i][j] = s[i][j];       }     for (i = 1; i <= n; ++i)       for (j = 1; j <= n; ++j) {         if (s[i][j] == 0) continue;         sumx = 0;         sumy = 0;         h = 1;         t = 1;         qx[h] = i;         qy[h] = j;         for (; h <= t; ++h) {           a = qx[h];           b = qy[h];           sumx += a;           sumy += b;           for (k = 0; k < 8; ++k) {             x = a + dx[k];             y = b + dy[k];             if (v[x][y] == 0) ++f[a][b];             if (s[x][y] == 1) {               ++t;               qx[t] = x;               qy[t] = y;               s[x][y] = 0;             }           }         }         if (t < 125) continue;         tx = round(sumx / t);         ty = round(sumy / t);         maxd = 0;         for (k = 1; k <= t; ++k) maxd = max(maxd, dis(tx - qx[k], ty - qy[k]));         if (t < 2.5 * maxd * maxd)           ++rec;         else           ++cir;       }     printf( %d %d n , cir, rec);     return 0;   }   