Cod sursa(job #796637)

Utilizator RaduDoStochitoiu Radu RaduDo Data 11 octombrie 2012 23:24:05
Problema Cele mai apropiate puncte din plan Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int n,i,j;
double dist,d;
struct cc {int x,y;} p[100001];

int cmp(cc a,cc b)
{
	if(a.x>b.x)
		return 0;
	return 1;
}

int main()
{
	freopen("cmap.in","r",stdin);
	freopen("cmap.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;++i)
		scanf("%d%d",&p[i].x,&p[i].y);
	sort(p+1,p+n+1,cmp);
	d=9223372036854775807ll;
	for(i=1;i<=n;++i)
		for(j=i+1;j<=i+7&&j<=n;++j)
		{
			dist=sqrt(double((p[i].x-p[j].x)*(p[i].x-p[j].x))+double((p[i].y-p[j].y)*(p[i].y-p[j].y)));
			if(dist<d)
				d=dist;
		}
	printf("%.6lf",d);
	return 0;
}