Pagini recente » Cod sursa (job #676839) | Cod sursa (job #867969) | Cod sursa (job #3193985) | Cod sursa (job #2493809) | Cod sursa (job #2222372)
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <climits>
#define x first
#define y second
using namespace std;
const int Dim = 100005;
pair<int,int> v[Dim];
long long dist_p(int a,int b){
return 1LL*(v[a].x-v[b].x)*(v[a].x-v[b].x)+1LL*(v[a].y-v[b].y)*(v[a].y-v[b].y);
}
void Get (int &x);
int main(){
freopen("cmap.in","r",stdin);
freopen("cmap.out","w",stdout);
int n;
Get(n);
for(int i = 1;i <= n;++i)
Get(v[i].x), Get(v[i].y);
sort(v+1,v+n+1);
long long mi = 1LL << 60;
int poz;
for ( int i = 2; i <= n; ++i)
if (abs(v[i].x - v[i-1].x) < mi )
mi = v[i].x - v[i-1].x,poz = i;
long long Min=dist_p(poz, poz - 1);
for(int i = 1;i <= n;++i)
for(int j = i + 1;j <= n;++j){
if(1LL*(v[j].x-v[i].x)*(v[j].x-v[i].x)>Min)
break;
long long d=dist_p(i,j);
if(d<Min) Min=d;
}
printf("%.6f",sqrt(Min) );
return 0;
}
const int Lim = 8500000;
int u = Lim - 1;
char s[Lim];
void Next () {
if (++u == Lim)
std::fread(s, 1, Lim, stdin), u = 0;
}
void Get (int &x) {
x = 0;
bool minu = false;
for (; s[u] < '0' || s[u] > '9'; Next());
if ( s[u-1] == '-')
minu = true;
for (x = 0; s[u] >= '0' && s[u] <= '9'; Next())
x = x * 10 + s[u] - '0';
if ( minu == true)
x *= -1;
}