Cod sursa(job #2219819)

Utilizator HumikoPostu Alexandru Humiko Data 9 iulie 2018 19:55:59
Problema Cele mai apropiate puncte din plan Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <bits/stdc++.h>
#define lim 100005
#define oo 1e16

using namespace std;

ifstream fin ("cmap.in");
ofstream fout ("cmap.out");

int n;
long double answer;
pair <long double, long double> point[lim];

long double distanceBetweenPoints ( pair <long double, long double> a, pair <long double, long double> b )
{
    long double difference_of_X = (b.first-a.first)*(b.first-a.first);
    long double difference_of_Y = (b.second-a.second)*(b.second-a.second);
    return sqrt (difference_of_X+difference_of_Y);
}

int main()
{
    fin>>n;
    for ( int i = 1; i <= n; ++i )
        fin>>point[i].first>>point[i].second;

    sort ( point+1, point+n+1 );
    long double answer = oo;

    for ( int i = 1; i < n; ++i )
        for ( int j = i+1; j <= n && point[j].first-point[i].first < answer; ++j )
            answer = min(distanceBetweenPoints(point[i], point[j]), answer);
    fout<<fixed<<setprecision(12)<<answer<<'\n';
}