Pagini recente » Cod sursa (job #2681349) | Cod sursa (job #415994) | Cod sursa (job #1821073) | Istoria paginii runda/dist2/clasament | Cod sursa (job #1712747)
/**
* Worg
*/
#include <cmath>
#include <cstdio>
#include <utility>
#include <algorithm>
using namespace std;
FILE *fin = freopen("cmap.in", "r", stdin);
FILE *fout = freopen("cmap.out", "w", stdout);
const int MAX_N = 1 + 100000;
/*--------------------------*/
pair< int, int > vec[MAX_N];
int N;
double SOL = 2000000000;
/*--------------------------*/
void readData() {
scanf("%d", &N);
for(int i = 1; i <= N; i++) {
scanf("%d%d", &vec[i].first, &vec[i].second);
}
}
double dist(int a, int b) {
return sqrt((double) (vec[a].first - vec[b].first) * (vec[a].first - vec[b].first) +
(double) (vec[a].second - vec[b].second) * (vec[a].second - vec[b].second));
}
void getSol() {
for(int i = 1; i < N; i++) {
for(int j = i + 1; j <= N && (double)vec[j].second - vec[i].second <= SOL; j++) {
SOL = min(SOL, dist(i, j));
}
}
}
int main() {
readData();
sort(vec + 1, vec + N + 1);
getSol();
for(int i = 1; i <= N; ++i) {
swap(vec[i].first, vec[i].second);
}
sort(vec + 1, vec + N + 1);
getSol();
printf("%.9f", SOL);
return 0;
}