#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include ///////// #define REP(i, x, n) for(int i = x; i < n; i++) #define rep(i,n) REP(i,0,n) #define P(p) cout<<(p)< ///////// typedef long long LL; typedef long double LD; ///////// using namespace::std; ///////// unsigned long long Len[1000][1000]; int main(void){ std::cin.tie(0); std::ios::sync_with_stdio(false); std::cout << std::fixed;// //cout << setprecision(10);// /*unsigned long long asd; asd = 1000000000; P(asd*asd*2); return 0; */ int N; cin>>N;//[2,1000] unsigned long long X[1000],Y[1000]; rep(i,N){ cin>>X[i]>>Y[i]; } unsigned long long Lmin=0,tLmin; unsigned long long Amax=0; for(int i=0;i X[i] ){ Len[i][k] = (X[k]-X[i])*(X[k]-X[i]); }else{ Len[i][k] = (X[i]-X[k])*(X[i]-X[k]); } if(Y[k] > Y[i] ){ Len[i][k] += (Y[k]-Y[i])*(Y[k]-Y[i]); }else{ Len[i][k] += (Y[i]-Y[k])*(Y[i]-Y[k]); } } } /////////// bool use[1001]; int team[1001]; int useCount = 0; rep(i,N){ use[i]=false; team[i] = i; } use[0] = true; ++useCount; Lmin=0; //tLmin; Amax = 0; int minNo = -1; int minI,minK; //while(useCount < N) while(team[N-1] != 0) { minNo = -1; Lmin = 0; minI = -1; minK = -1; for(int i=0;i tLmin){ Lmin = tLmin; minNo = k; minI = i; minK = k; } } } //// if(team[minI] < team[minK]){ minNo = team[minK]; for(int no=0;no Amax || Amax > (Mid+1)*(Mid+1) ); ans = Mid; } /////////////// ans = (ans + 9)/10*10; while(Amax > ans*ans){ ans += 10; } //ans *= 10; P( ans ); return 0; }