Cod sursa(job #931033)

Utilizator taigi100Cazacu Robert taigi100 Data 27 martie 2013 22:39:06
Problema Cele mai apropiate puncte din plan Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<math.h>
#include<algorithm>
#include<iomanip>
using namespace std;
#define max 100005
struct nod
{
	long long x,y;
} nodes[max];
int n;
long long rez;
int cmp(const nod a, const nod b)
{
	if(a.x==b.x) return a.y<b.y;
	return a.x<b.x;
}

long long dist( int a,int b )
{
	return (nodes[a].x-nodes[b].x)*(nodes[a].x-nodes[b].x)+(nodes[a].y-nodes[b].y)*(nodes[a].y-nodes[b].y);
}

int main()
{
	freopen("cmap.out","w",stdout);
	freopen("cmap.in","r",stdin);

	scanf("%d",&n);
	for(int i=1;i<= n;i++)
		scanf("%lld%lld",&nodes[i].x,&nodes[i].y);
	sort(nodes+1,nodes+n+1,cmp);
	rez=dist(1,n);
	for(int i=1;i<=n;i++)
		for(int j=i+1;j<=i+7 && j<=n;j++)
			rez=min(rez,dist(i,j));
	printf("%.6lf",sqrt((double)rez));
	return 0;
}