Cod sursa(job #828807)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 4 decembrie 2012 14:49:48
Problema Cele mai apropiate puncte din plan Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <algorithm>
#include <cmath>
#include <fstream>
#include <iostream>
#include <vector>
#include <iomanip>

using namespace std;

ifstream in("cmap.in");
ofstream out("cmap.out");

int n;
vector <pair<int,int > > v;

long long dist(const pair<int, int> & a, const pair<int, int> & b){ // distanta fara sqrt
	long long xd=(a.first-b.first);
	long long yd=(a.second-b.second);
	return xd*xd + yd*yd;
}

long long min(long long x,long long y){
	if(x<y)
		return x;
	return y;
}


int main(){
	int i,x,y;
	in>>n;
	v.reserve(n);
	for(i=1;i<=n;++i){
		in>>x>>y;
		v.push_back(make_pair(x,y));
	}
	sort(v.begin(),v.end());
	long long result= 1000000000ll;
	int j;
	for(i=0;i<n;++i){
		for(j=i+1;j<n&&j<=i+7;++j){
			result=min(result,dist(v[i],v[j]));
		}
	}
	out<<fixed<<setprecision(6)<<sqrt((double)result);
	return 0;
}