func_code_string: #include <bits/stdc++.h>   #pragma GCC optimize( Ofast,no-stack-protector,unroll-loops,fast-math )   #pragma GCC target( sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,popcnt,tune=native )   using namespace std;   const int MN = 3333, inf = 1000000005, mod = 1000000007;   const long long INF = 1000000000000000005LL;   bitset<MN> Z[MN];   int dist[MN][MN], X[MN], Y[MN];   inline int d2(int a, int b) {     return (X[a] - X[b]) * (X[a] - X[b]) + (Y[a] - Y[b]) * (Y[a] - Y[b]);   }   int n;   bool dasie(int x) {     for (int i = 1; i <= n; ++i)       for (int j = 1; j <= n; ++j) Z[i][j] = (i != j && dist[i][j] >= x);     for (int i = 1; i <= n; ++i)       for (int j = i + 1; j <= n; ++j) {         if (Z[i][j] == 0) continue;         if ((Z[i] & Z[j]).count()) return true;       }     return false;   }   int bs() {     int zd = 0, zg = 1e9 + 5;     while (zd != zg) {       int mid = (zd + zg + 1) >> 1;       if (dasie(mid))         zd = mid;       else         zg = mid - 1;     }     return zd;   }   int main() {     scanf( %d , &n);     for (int i = 1; i <= n; ++i) scanf( %d%d , &X[i], &Y[i]);     for (int i = 1; i <= n; ++i)       for (int j = 1; j <= n; ++j) dist[i][j] = d2(i, j);     int ans = bs();     double odp = ans;     odp = sqrt(odp) / 2.0;     printf( %.9lf , odp);   }   