func_code_string: #include <bits/stdc++.h>   using namespace std;   long long pf(int v) { return (long long)1 * v * v; }   struct sd {     int a, b;     bool operator<(const sd& w) const { return a < w.a; }   } x[100005];   long long maxx(long long a, long long b) { return a > b ? a : b; }   long long minx(long long a, long long b) { return a < b ? a : b; }   int n, fr[2][100005], ba[2][100005];   long long ans = 1e18;   bool jud(long long v) {     int mid = sqrt(v);     for (int i = 1; i <= n; i++) {       if (x[i].a > 0) break;       int l = 1, r = n, R = minx(mid + x[i].a, -x[i].a);       while (l < r) {         int mid = ((l + r) >> 1) + 1;         if (x[mid].a <= R)           l = mid;         else           r = mid - 1;       }       if (i == 1 && l == n) return 1;       int ymin = minx(fr[0][i], ba[0][l]), ymax = maxx(fr[1][i], ba[1][l]);       if (maxx(maxx(pf(ymax), pf(ymin)) + pf(x[i].a), pf(ymax - ymin)) <= v)         return 1;     }     return 0;   }   void work() {     sort(x + 1, x + 1 + n);     fr[0][1] = 1e9;     fr[1][1] = -1e9;     ba[0][n] = 1e9;     ba[1][n] = -1e9;     for (int i = 2; i <= n; i++)       fr[0][i] = minx(fr[0][i - 1], x[i - 1].b),       fr[1][i] = maxx(fr[1][i - 1], x[i - 1].b);     for (int i = n - 1; i >= 1; i--)       ba[0][i] = minx(ba[0][i + 1], x[i + 1].b),       ba[1][i] = maxx(ba[1][i + 1], x[i + 1].b);     long long l = 0, r = 1e18;     while (l < r) {       long long mid = (l + r) / 2;       if (jud(mid))         r = mid;       else         l = mid + 1;     }     ans = minx(ans, l);   }   int main() {     scanf( %d , &n);     for (int i = 1; i <= n; i++) scanf( %d%d , &x[i].a, &x[i].b);     work();     for (int i = 1; i <= n; i++) x[i].a *= -1;     work();     int ymax = -1e9, ymin = 1e9;     for (int i = 1; i <= n; i++)       ymax = maxx(ymax, x[i].b), ymin = minx(ymin, x[i].b);     ans = minx(ans, pf(ymax - ymin));     cout << ans << endl;     return 0;   }   