Cod sursa(job #679757)

Utilizator batistaUPB-Oprea-Cosmin-Dumitru batista Data 13 februarie 2012 18:06:24
Problema Cele mai apropiate puncte din plan Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
long n,i,m;
struct pc{long x,y;}v[100002];
bool cond(pc i,pc j)
{
	return i.x<j.x;
}
float dist(long i,long j)
{
	return sqrt(pow(v[i].x-v[j].x,double(2))+pow(v[i].y-v[j].y,double(2)));
}
double rezolva(long d,double rez)
{   //d->ordonada punctului central
	long i,j;
	double p;
	for(i=1;i<=n;i++)
	 for(j=i+1;j<=i+7 && j<=n;j++)
	 {
		p=dist(i,j);
		if(p<rez)
			rez=p;
	 }
  return rez;
}
int main()
{
	freopen("cmap.in","r",stdin);freopen("cmap.out","w",stdout);
	scanf("%ld",&n);
	for(i=1;i<=n;i++)
		scanf("%ld %ld",&v[i].x,&v[i].y);
	sort(v+1,v+n+1,cond);
	printf("%.6lf", rezolva(v[n/2].x,1000000000ll) );
return 0;}