Cod sursa(job #781531)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 24 august 2012 16:39:46
Problema Cele mai apropiate puncte din plan Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 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;}

double 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(double rez){
   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(1000000000ll) );
 return 0;
}