func_code_string: #include <bits/stdc++.h>   using namespace std;   struct point {     int x, y;     point(){};     point(int xx, int yy) {       x = xx;       y = yy;     }     point friend operator+(point a, point b) {       return point(a.x + b.x, a.y + b.y);     }     point friend operator-(point a, point b) {       return point(a.x - b.x, a.y - b.y);     }     long long friend operator*(point a, point b) {       return (long long)a.x * b.y - (long long)a.y * b.x;     }   } a[5050], s[5050];   int n, tot;   long long S;   bool cmp(point a, point b) {     if (a.x != b.x) return a.x < b.x;     return a.y < b.y;   }   void put(point a) { printf( %d %d n , a.x, a.y); }   long long area(int i, int j, int k) {     return abs((s[j] - s[i]) * (s[k] - s[i]));   }   int main() {     scanf( %d%I64d , &n, &S);     for (int i = 1; i <= n; i++) scanf( %d%d , &a[i].x, &a[i].y);     sort(a + 1, a + 1 + n, cmp);     for (int i = 1; i <= n; i++) {       while (tot > 1 && (a[i] - s[tot - 1]) * (s[tot] - s[tot - 1]) <= 0) tot--;       s[++tot] = a[i];     }     int k = tot;     for (int i = n - 1; i > 0; i--) {       while (tot > k && (a[i] - s[tot - 1]) * (s[tot] - s[tot - 1]) <= 0) tot--;       s[++tot] = a[i];     }     tot--;     S = 0;     int ii, jj, kk;     for (int i = 1; i < tot - 1; i++) {       int tmp = i + 2;       for (int j = i + 1; j <= tot; j++) {         while (tmp < tot && area(i, j, tmp + 1) > area(i, j, tmp)) tmp++;         if (area(i, j, tmp) > S) {           S = area(i, j, tmp);           ii = i;           jj = j;           kk = tmp;         }       }     }     put(s[ii] + s[jj] - s[kk]);     put(s[jj] + s[kk] - s[ii]);     put(s[kk] + s[ii] - s[jj]);     return 0;   }   