Cod sursa(job #1594643)

Utilizator trutruvasilicaHuhurez Marius trutruvasilica Data 9 februarie 2016 17:15:47
Problema Cele mai apropiate puncte din plan Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
struct nr
{
    int a,b;
}v[100001];
bool cmp(nr A,nr B)
{
    return A.a+A.b<B.a+B.b;
}
long long dist(int i,int j)
{
    return 1LL*(v[i].a-v[j].a)*(v[i].a-v[j].a)+1LL*(v[i].b-v[j].b)*(v[i].b-v[j].b);
}
int main()
{
    freopen("cmap.in","r",stdin);
    freopen("cmap.out","w",stdout);
    int n,i,j;
    long long sol=(1LL<<60),step;
    scanf("%d",&n);
    for(i=1;i<=n;i++) scanf("%d%d",&v[i].a,&v[i].b);
    sort(v+1,v+n+1,cmp);
    for(i=1;i<n;i++)
    {
        for(j=i+1;j<=i+7&&j<=n;j++)
        {
            step=dist(i,j);
            if(step<sol) sol=step;
        }
    }
    printf("%.8f",sqrt(double(sol)));
}