Cod sursa(job #864996)

Utilizator RaduDoStochitoiu Radu RaduDo Data 25 ianuarie 2013 22:04:31
Problema Cele mai apropiate puncte din plan Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#define INF 0x3f3f3f3f
using namespace std;
int n,i,j;
double dist,d;
struct elem {int x,y;} a[100001];

int cmp(elem a,elem b)
{
    return (a.x<=b.x);
}

int main()
{
    freopen("cmap.in","r",stdin);
    freopen("cmap.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;++i)
        scanf("%d%d",&a[i].x,&a[i].y);
    sort(a+1,a+n+1,cmp);
    d=INF;
    for(i=1;i<=n;++i)
        for(j=i+1;j<=i+7&&j<=n;++j)
        {
            dist=sqrt(double((a[i].x-a[j].x))*double((a[i].x-a[j].x))+double((a[i].y-a[j].y))*double((a[i].y-a[j].y)));
            if(dist<d)
                d=dist;
        }
    printf("%.6lf",d);
    return 0;
}