Cod sursa(job #781510)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 24 august 2012 16:15:15
Problema Cele mai apropiate puncte din plan Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<fstream>
#define dim 100007
#define inf 999999999
#include<algorithm>
#include<cmath>
#include<set>
#include<iomanip>
using namespace std;


ifstream f("cmap.in");
ofstream g("cmap.out");
long long  n,i,j;
long double  sol,w;
struct s{
	long long  x,y,s;
}
v[dim];
int nr=7;
inline long double  D(s a ,s b){
	return (long long)((long long )(a.x-b.x)*(a.x-b.x)+(long long)(a.y-b.y)*(a.y-b.y));
}

long long  cmp(s a,s b){
	return a.s<b.s;
}
int main () {
	
	f>>n;
	
	sol=(long long)1<<32;
	for(i=1;i<=n;++i){
		f>>v[i].x>>v[i].y;
		v[i].s=v[i].x+v[i].y;
	}
	
	sort(v+1,v+1+n,cmp);
	
	for(i=1; i<=n ; ++i){
		
		
		for(j=i+1; j<=n && j<=nr+i ;++j){ 
			w=D(v[i],v[j]);
			if(sol>w)
				sol=w;
		}
		
	}
	
	g<<setprecision(17)<<sqrt((long double )sol)<<"\n";
	
	return 0;
}