Pagini recente » Cod sursa (job #232060) | Cod sursa (job #52501) | Cod sursa (job #143308) | Cod sursa (job #2508110) | Cod sursa (job #2094099)
#include<fstream>
#include<algorithm>
#define DN 100005
#include<iomanip>
#include<cmath>
#define x first
#define y second
#define INF 1000000000000
using namespace std;
ifstream fin("cmap.in");
ofstream fout("cmap.out");
typedef pair<int,int> pii;
pii a[DN];
pii r[DN];
int n;
long long dist(pii A,pii B)
{
return (long long)(A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y);
}
long long re(int st,int dr)
{
int m=0;
if(st==dr)
return INF;
int mij=(st+dr)/2;
long long rez=min(re(st,mij),re(mij+1,dr));
for(int i=st;i<=dr;i++)
if(abs(a[i].x-a[m].x)<=rez)
{
m++;
r[m]=a[i];
}
for(int i=1;i<=m;i++)
for(int j=max(1,i-7);j<i;j++)
rez=min(rez,dist(a[j],a[i]));
return rez;
}
long long t;
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
fin>>a[i].x>>a[i].y;
sort(a+1,a+n+1);
t=re(1,n);
fout<<fixed<<setprecision(6)<<sqrt(t);
}