Pagini recente » Cod sursa (job #2586110) | Cod sursa (job #2556112) | Cod sursa (job #582487) | Cod sursa (job #3274295) | Cod sursa (job #1817802)
#include <cmath>
#include <cstdio>
#include <algorithm>
#define INF 2000000000
#define MAXN 100010
using namespace std;
struct punct{int x,y;}p[MAXN];
int i,j,n;
long long sol;
FILE *f=freopen("cmap.in","r",stdin);
FILE *g=freopen("cmap.out","w",stdout);
#define buff_size 1048576
char buff[buff_size];
int pos=0,semn;
inline void read(int &nr){
semn = 1;
while(buff[pos] < '0' || buff[pos] > '9'){if(buff[pos]== '-' )semn = -1; if(++pos == 200000) fread(buff, 1, 200000, stdin), pos = 0;}
nr = 0;
while('0' <= buff[pos] && buff[pos] <= '9') {nr = nr * 10 + buff[pos] - '0';if(++pos == 200000) fread(buff, 1, 200000, stdin), pos = 0;}
nr*=semn;
}
inline long long dist(punct a,punct b) {return (long long)((long long)(a.x-b.x)*(a.x-b.x)+(long long)(a.y-b.y)*(a.y-b.y));}
struct cmp{
inline bool operator ()(punct a,punct b){return a.x<b.x;}
};
int main()
{ fread(buff, 1,buff_size, stdin);
read(n);
for(i=0;i<n;i++)
read(p[i].x),read(p[i].y);
sort(p,p+n,cmp());
sol=(1LL<<61);
for(i=0;i<n;i++)
for(j=i+1;j<=i+3 and j<n;j++) if(dist(p[i],p[j])<sol) sol=dist(p[i],p[j]);
printf("%.6lf", sqrt((double)sol));
}