Cod sursa(job #2554433)

Utilizator vladth11Vlad Haivas vladth11 Data 22 februarie 2020 21:34:36
Problema Cele mai apropiate puncte din plan Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.13 kb
//~ while (clock()<=69*CLOCKS_PER_SEC)
 #pragma comment(linker, "/stack:200000000")
 #pragma GCC optimize("O3")
#pragma GCC target ("avx2")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
#define debug(x) cerr << #x << " " << x << "\n"

using namespace std;
pair <int,int> v[100001];
double distanta(pair <int,int> n, pair <int,int> m){
    pair <double,double> a = n,b = m;
    return sqrt((b.first - a.first) * (b.first - a.first) + (b.second - a.second) * (b.second - a.second));
}
int main()
{
    ifstream cin("cmap.in");
    ofstream cout("cmap.out");
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n,i;
    cin >> n;
    for(i = 1;i <= n;i++){
        cin >> v[i].second >> v[i].first;
    }
    double minim = (double)(1LL << 60);
    sort(v + 1,v + n + 1);
    for(i = 1;i <= n;i++){
        for(int j = i + 1;j <= min(i + (int)200,n);j++){
            minim = min(minim,distanta(v[i],v[j]));
        }
    }
    cout << fixed << setprecision(6) << minim;
    return 0;
}