Cod sursa(job #884138)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 20 februarie 2013 18:06:28
Problema Cele mai apropiate puncte din plan Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
//Dobrin e sexy

#include<fstream>
#define dim 100007
#define inf 999999999
#include<algorithm>
#include<cmath>
#include<set>
#include<iomanip>
using namespace std;


ifstream f("cmap.in");
ofstream g("cmap.out");
long long  n,i,j;
long double  sol,w;
struct s{
    long long  x,y,s;
}
v[dim];
int nr=7;
inline long double  D(s a ,s b){
    return (long long)((long long )(a.x-b.x)*(a.x-b.x)+(long long)(a.y-b.y)*(a.y-b.y));
}

long long  cmp(s a,s b){
    if(a.x==b.x)
        return a.y<b.y;
   else
        return a.x<b.x;
}
int main () {

    f>>n;

    sol=(long long)1<<62;
    for(i=1;i<=n;++i){
        f>>v[i].x>>v[i].y;
        v[i].s=v[i].x+v[i].y;
    }

    sort(v+1,v+1+n,cmp);

    for(i=1; i<=n ; ++i){


        for(j=i+1; j<=n && j<=nr+i ;++j){
            w=D(v[i],v[j]);
            if(sol>w)
                sol=w;
        }

    }

    g<<setprecision(16)<<(long double )sqrt((long double )sol)<<"\n";

    return 0;
}