Cod sursa(job #714062)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 15 martie 2012 12:44:11
Problema Cele mai apropiate puncte din plan Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <stdio.h>
#include <math.h>
#include <algorithm>

using namespace std;

FILE *f,*s;

struct punct
{
	int x;
	int y;
};

punct v1[100005];

long long int i,j,k,l,m,n;

long long int Distanta(punct a, punct b)
{
	return (long long int)(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);
}

int cmp(punct a, punct b)
{
	if(a.x!=b.x)
		return a.x<b.x;
	else
		return a.y<b.y;
}

int main()
{
	f=fopen("cmap.in","r");
	s=fopen("cmap.out","w");
	
	fscanf(f,"%d",&n);
	
	for(i=1;i<=n;i++)
		fscanf(f,"%d %d",&v1[i].x,&v1[i].y);
	
	sort(v1+1,v1+n+1,cmp);
	
	long long int rez=1000000000000000000LL;
	
	for(i=1;i<=n;i++)
		for(j=i+1;j<=i+7 && j<n;j++)
			if(Distanta(v1[i],v1[j])<rez) 
				rez=Distanta(v1[i],v1[j]);

	fprintf(s,"%lf",sqrt(rez));
			
	fclose(s);
	
	return 0;
}