Cod sursa(job #869673)

Utilizator enedumitruene dumitru enedumitru Data 1 februarie 2013 22:36:52
Problema Cele mai apropiate puncte din plan Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<cstdio> 
#include<cmath> 
#include<algorithm> 
#include<utility> 
using namespace std; 
pair<int,int> s[100010]; 
long long sol=1LL<<60; 
int n,i,j,x,y; 
long long dist(int a,int b) 
{ 
    return (long long)(s[a].first-s[b].first)*(s[a].first-s[b].first) + (long long)(s[a].second-s[b].second)*(s[a].second-s[b].second); 
} 
int main() 
{ 
    freopen("cmap.in","r",stdin); 
    freopen("cmap.out","w",stdout); 
    scanf("%d",&n); 
    for(i=1;i<=n;i++) 
    { 
        scanf("%d %d",&x,&y); 
        s[i]=make_pair(x,y); 
    } 
    sort(s+1,s+n+1); 
    for(i=1;i<=n;i++) 
    { 
        for(j=i+1;j<=i+7&&j<=n;j++) 
        { 
            sol=min(sol,dist(i,j)); 
        } 
    } 
    printf("%.6lf",sqrt((double)sol)); 
    return 0; 
}