Cod sursa(job #1226159)

Utilizator mihaimusatMihai Musat mihaimusat Data 4 septembrie 2014 17:44:12
Problema Cele mai apropiate puncte din plan Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<utility>

using namespace std;

pair<int,int> s[100010];
long long sol=1LL<<60;
int n,i,j,x,y;

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