Cod sursa(job #707852)

Utilizator gyeresihunorGyeresi Hunor gyeresihunor Data 6 martie 2012 07:49:55
Problema Cele mai apropiate puncte din plan Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include "stdio.h"
#include "math.h"

long long n;
long long x[100001];
long long y[100001];
bool      l[100001];
long long dmin=2000000000;
long long s;

long long tav(long long i, long long j);
void megold(long long ki);


int main()
{
	long long i;
	freopen("cmap.in","r",stdin);
	freopen("cmap.out","w",stdout);
	scanf("%lld",&n);
	for(i=0;i<n;i++)
		scanf("%lld%lld",&x[i],&y[i]);
	for(i=0;i<n;i++)
		if(!l[i])
			megold(i);
	printf("%.6f",sqrtf(dmin));
	return 0;
}

void megold(long long ki)
{
	l[ki]=true;
	long long i;
	for(i=0;i<n;i++)
		if(i!=ki)
		{
			s=tav(ki,i);
			if(s<dmin)
			{
				dmin=s;
				megold(i);
				return;
			}
		}
	return ;
}

long long tav(long long i,long long j)
{
	return (x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]);
}