#include #include using namespace std; typedef long long ll; struct unionfind { vector id; int size; unionfind(int size_):size(size_) { id=vector(size); for(int i=0;i> p; int n; ll dist(int i, int j) { #define sqr(x) ((x)*(x)) return sqr(p[i].first-p[j].first)+sqr(p[i].second-p[j].second); } int main() { while (cin>>n) { p=vector>(n); for(auto& v: p) { ll x, y; cin>>x>>y; v=make_pair(x, y); } ll L=0, R=sqrt(dist(0, n-1))*2; while (R-L>2) { ll M=(L+R)/2; unionfind a(n); for(int i=0;i