#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define INF 100000000 #define EPS 1e-9 using namespace std; typedef long long ll; typedef pair P; #define MAX_N 1000 int N; int X[MAX_N], Y[MAX_N]; int par[MAX_N]; int Rank[MAX_N]; void init(int n){ for(int i = 0; i < n; i++){ par[i] = i; Rank[i] = 0; } } int find(int x){ if(x == par[x]) return x; else return par[x] = find(par[x]); } void unite(int x, int y){ x = find(x); y = find(y); if(x == y) return; if(Rank[x] < Rank[y]){ par[x] = y; } else{ par[y] = x; if(Rank[x] == Rank[y]) Rank[x]++; } } int calc(int a, int b, int c, int d){ return (a-c)*(a-c) + (b-d)*(b-d); } bool same(int x, int y){ return find(x) == find(y); } int main(){ cin >> N; for(int i = 0; i < N; i++){ cin >> X[i] >> Y[i]; } init(N); for(int i = 0; i < N; i++){ for(int j = i+1; j < N; j++){ if(calc(X[i],Y[i],X[j],Y[j]) <= 100){ unite(i,j); } } } int ans = 0; for(int i = 0; i < N; i++){ for(int j = i+1; j < N; j++){ if(same(i,j)) ans = max(ans, calc(X[i],Y[i],X[j],Y[j])); } } if(ans == 0 && N == 0) cout << 1 << endl; else if(ans == 0 && N >= 1) cout << 2 << endl; else printf("%.7f\n",sqrt(ans) + 2.0); return 0; }