#include typedef long long ll; typedef unsigned long long ull; #define FOR(i,a,b) for(int (i)=(a);i<(b);i++) #define REP(i,n) FOR(i,0,n) #define RANGE(vec) (vec).begin(),(vec).end() using namespace std; class Ruler { public: void solve(void) { int N; cin>>N; vector xs(N); vector ys(N); REP(i,N) { cin>>xs[i]>>ys[i]; } vector> dist(N,vector(N,0)); REP(i,N) REP(j,i+1) { ll dx = xs[i]-xs[j]; ll dy = ys[i]-ys[j]; // (10^9)^2 を double で扱うと精度落ちするので long long で扱う dist[i][j] = dist[j][i] = dx*dx+dy*dy; } ll low = 0; ll high = 2*1E+9+1; vector vis(N,false); while (low+1 < high) { ll mid = (low+high)/2; fill(RANGE(vis),false); function dfs = [&](int v) { vis[v] = true; REP(u,N) { if (vis[u]) continue; if (dist[v][u] > mid*mid) continue; dfs(u); } }; dfs(0); if (vis[N-1]) high = mid; else low = mid; } cout<<(ll)ceil(high/10.0)*10<solve(); delete obj; return 0; } #endif