WA+MLE+RE
#include<bits/stdc++.h>
typedef long double ld;
typedef long long ll;
using namespace std;
int n;
struct nood {
ll x,y;
}b[100010],z[100010];
//ld x[100010],y[100010];
vector<int> pjr;//存在b中的序号
vector<int> yyr;
bool cmp(int a,int q){
return b[a].y<b[q].y;
}
ld jl(int p,int q){
ld ans=sqrt((b[p].x-b[q].x)*(b[p].x-b[q].x)+(b[p].y-b[q].y)*(b[p].y-b[q].y));
// cout<<"!"<<b[p].x<<" "<<b[p].y<<" "<<b[q].x<<" "<<b[q].y<<" "<<ans<<endl;
return ans;
}
ld hb(int t){
//cout<<2<<endl;
ld minn=t;
// cout<<"$"<<pjr.size()<<endl;
sort(pjr.begin(),pjr.end(),cmp);
// for(int i=0;i<pjr.size();i++){
// int yzz=pjr[i];
// cout<<"^"<<b[yzz].x<<" "<<b[yzz].y<<endl;
// }
int i=0,j=1;
for(;i<pjr.size()-1;i++){
yyr.resize(0);
while(j<pjr.size()&&b[pjr[j]].y<=b[pjr[i]].y+t){
yyr.push_back(pjr[j]);
j++;
}
// cout<<"$"<<yyr.size()<<endl;
if(yyr.size()==1){
minn=min(minn,jl(pjr[i],pjr[j-1]));
}
if(yyr.size()>=1){
for(int k=0;k<yyr.size()-1;k++){
for(int p=k+1;p<yyr.size();p++){
minn=min(minn,jl(yyr[k],yyr[p]));
}
}
}
}
// cout<<minn<<endl;
return minn;
}
ld fzh(int l,int r){
//cout<<1<<endl;
if(l==r) return 0x8f8f8f8f;
int mid=(l+r)>>1;
ld minn=min(fzh(l,mid),fzh(mid+1,r));
//cout<<"#"<<minn<<endl;
int i=l,j=mid+1;
for(int k=l;k<=r;k++){
if(i>mid){
while(j<=r) {
z[k].x=b[j].x,z[k].y=b[j].y;
k++,j++;
}
break;
}
if(j>r){
while(i<=mid) {
z[k].x=b[i].x,z[k].y=b[i].y;
k++,i++;
}
break;
}
if(b[i].x>b[j].x) {
z[k].x=b[j].x,z[k].y=b[j].y;
j++;
}
else{
z[k].x=b[i].x,z[k].y=b[i].y;
i++;
}
}
if(l==r-1) return jl(l,r);
long long midn=(b[mid].x+b[mid+1].x)/2,p=midn-minn,q=midn+minn+1;
// cout<<l<<" "<<r<<endl;
int flag=0;
for(int k=l;k<=r;k++){
// cout<<z[k]<<"*";
if(flag) {
pjr.push_back(k);
}
b[k].x=z[k].x,b[k].y=z[k].y;
if(!flag&&b[k].x>=p) {
pjr.resize(0);
pjr.push_back(k);
flag=1;
}
if(flag&&b[k].x>=q) flag=0;
}
// cout<<"@"<<pjr.size();
if(pjr.size()>1) minn=min(minn,hb(minn));
// cout<<"()"<<minn<<endl;
return minn;
}
int main(){
freopen("in.txt","r",stdin);
cin>>n;
for(int i=1;i<=n;i++){
cin>>b[i].x>>b[i].y;
// b[i].x=x[i],b[i].y=y[i];
}
ld ans=fzh(1,n);
// cout<<"//"<<(double)ans<<endl;
ll ansn=ans*ans+0.5;
cout<<(long long)ansn;
return 0;
}