Cod sursa(job #2162072)

Utilizator RaduVFVintila Radu-Florian RaduVF Data 11 martie 2018 23:57:53
Problema Cele mai apropiate puncte din plan Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include<fstream>
#include<algorithm>
#include<cmath>
#include<iomanip>
using namespace std;

ifstream fin("cmap.in");
ofstream fout("cmap.out");
const int inf=1000000000ll;
const int nmax=100005;
long n,i;

struct Point {
    long x,y;
}v[nmax];

bool cond(Point i,Point j) {
    return i.x<j.x;
}
double dist(long i,long j) {
    return double(sqrt(pow(v[i].x-v[j].x,double(2))+pow(v[i].y-v[j].y,double(2))));
}
double rezolva(long d,double rez) {
    long i,j;
    double p;
    for(i=1; i<=n; ++i)
    for(j=i+1; j<=i+7 && j<=n; ++j) {
        p=dist(i,j);
        if(p<rez) rez=p;
    }
    return rez;
}
int main()
{
    fin>>n;
    for(i=1; i<=n; ++i)
        fin>>v[i].x>>v[i].y;
    sort(v+1,v+n+1,cond);
    double rezultat = rezolva(v[n/2].x,inf);
    fout<<setprecision(10)<<fixed<<rezultat;
    return 0;
}