Cod sursa(job #2119414)

Utilizator MarinPeptenaruMarin Vasile Peptenaru MarinPeptenaru Data 1 februarie 2018 10:11:52
Problema Cele mai apropiate puncte din plan Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("cmap.in");
ofstream out("cmap.out");
struct punct
{
    int x,y;
};
int n,x,y;
vector < punct > v;
bool crit (const punct a, const punct b)
{
    return (a.x<b.x || (a.x==b.x || a.y<b.y));
}
double dist(punct a, punct b)
{
    return (double)sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
double dist_min=INT_MAX;
int main()
{
    in>>n;
    for(int i=1; i<=n; i++)
    {
        in>>x>>y;
        v.push_back({x,y});
    }
    sort(v.begin(),v.end(),crit);
    for(int i=0; i<n; i++)
        for(int j=i+1; j<n && j<=i+8 ; j++)
            if(dist(v.at(i),v.at(j))<dist_min)
                dist_min=(double)dist(v.at(i),v.at(j));
    out<<fixed<<setprecision(6)<<dist_min;
    return 0;
}