Cod sursa(job #1470101)

Utilizator cojocarugabiReality cojocarugabi Data 10 august 2015 13:35:22
Problema Cele mai apropiate puncte din plan Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
# include <bits/stdc++.h>
using namespace std;
ifstream fi("cmap.in");
ofstream fo("cmap.out");
# define ll long long
# define x first
# define y second
# define pll pair < ll , ll >
pll s[100005];
long double ans = (1LL << 62);
long double take(pll a,pll b)
{
    return sqrt(pow(a.x - b.x,2.) + pow(a.y - b.y,2.));
}
int main(void)
{
    int n;
    fi>>n;
    for (int i = 1;i <= n;++i) fi>>s[i].x>>s[i].y;
    sort(s+1,s+1+n);
    for (int i = 1;i <= n;++i)
        for (int j = i + 1;j <= n && s[j].x - s[i].x < ans;++j)
                if (abs(s[j].y - s[i].y) < ans)
                    ans = min(ans,take(s[i],s[j]));
    return fo << fixed << setprecision(6) << ans << '\n',0;
}