Cod sursa(job #781445)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 24 august 2012 14:27:30
Problema Cele mai apropiate puncte din plan Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 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;
double sol;
struct s{
	double x,y,s;
}
v[dim];
int nr=7;
inline double D(double X,double  Y,double x,double y){
	return ((X-x)*(X-x)+(Y-y)*(Y-y));
}
inline double min(double x,double y){
	if(x<y)
		return x;
	return y;
}
bool cmp(s a,s b){
	return a.s<b.s;
}
int main () {
	
	f>>n;
	
	sol=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) 
			
			sol=min(sol,D(v[i].x,v[i].y,v[j].x,v[j].y));
		
		
	}
	
	g<<setprecision(17)<<sqrt((long double )sol)<<"\n";
	
	return 0;
}