Pagini recente » Cod sursa (job #49422) | Cod sursa (job #29395) | Cod sursa (job #3180396) | Cod sursa (job #3003333) | Cod sursa (job #2547016)
#include <bits/stdc++.h>
using namespace std;
mt19937 rnd((long long)(new char));
#pragma GCC optimize("O3")
struct dd
{
double x,y;
};
bool cmp(dd a ,dd b)
{
if(a.x<b.x)return a.y<b.y;
return a.x<b.x;
}
double dist(dd a,dd b)
{
return sqrt((double)(b.x-a.x)*(b.x-a.x)+(b.y-a.y)*(b.y-a.y));
}
dd v1[100005];
dd v2[100005];
int main()
{
freopen("cmap.in","r",stdin);
freopen("cmap.out","w",stdout);
int n,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%lf%lf",&v1[i].x,&v1[i].y);
double unghi=rnd();
double cos1=cos(unghi),sin1=sin(unghi);
for(i=1;i<=n;i++)
{
v2[i].x=v1[i].x*cos1-v1[i].y*sin1;
v2[i].y=v1[i].x*sin1+v1[i].y*cos1;
}
sort(v2+1,v2+n+1,cmp);
double dist_min=10000000;
for(i=1;i<n;i++)
{
double d1=dist(v2[i],v2[i+1]);
if(dist_min>d1)dist_min=d1;
}
printf("%.6lf",dist_min);
}