Pagini recente » Cod sursa (job #1749998) | Cod sursa (job #2452267) | Cod sursa (job #2328359) | summer_camp_6 | Cod sursa (job #1817827)
#include <cmath>
#include <cstdio>
#include <iostream>
#include <algorithm>
#define INF 2000000000
#define MAXN 100010
using namespace std;
struct punct{long long x,y;}p[MAXN];
long long 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(long long &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("%9.6f", sqrt(double(sol)));
}