func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 300010;   const int INF = 1e9 + 7;   struct node {     int x, y;   } p[maxn];   int s[maxn];   int dis(int i, int j) { return abs(p[i].x - p[j].x) + abs(p[i].y - p[j].y); }   int main() {     int n, top, i, num, ans, maxx, maxy, minx, miny, tmp, j, pos1, pos2, k;     scanf( %d , &n);     maxx = -INF;     maxy = -INF;     minx = INF;     miny = INF;     for (i = 1; i <= n; i++) {       scanf( %d%d , &p[i].x, &p[i].y);       maxx = max(maxx, p[i].x);       maxy = max(maxy, p[i].y);       minx = min(minx, p[i].x);       miny = min(miny, p[i].y);     }     top = 0;     for (i = 1; i <= n; i++) {       if (p[i].x == minx || p[i].x == maxx || p[i].y == miny || p[i].y == maxy)         s[++top] = i;     }     ans = 0;     num = unique(s + 1, s + top + 1) - s - 1;     for (i = 1; i <= num; i++) {       for (j = i + 1; j <= num; j++) {         pos1 = s[i];         pos2 = s[j];         for (k = 1; k <= n; k++) {           if (k == pos1 || k == pos2) continue;           tmp = dis(pos1, pos2) + dis(pos1, k) + dis(k, pos2);           ans = max(ans, tmp);         }       }     }     for (i = 3; i <= n; i++) {       if (i == 3) {         printf( %d  , ans);         continue;       }       printf( %d  , 2 * (maxx - minx + maxy - miny));     }     printf(  n );     return 0;   }   