Cod sursa(job #2068313)

Utilizator juniorOvidiu Rosca junior Data 17 noiembrie 2017 16:12:14
Problema Cele mai apropiate puncte din plan Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <cmath>
#define VAL 100005

using namespace std;

ifstream fin("cmap.in");
ofstream fout("cmap.out");

int N, i, j;
long long ANS;
pair <long long, long long> P[VAL];

void Check(pair <long long, long long> A, pair <long long, long long> B)
{
  ANS = min(ANS, sqrt((A.first - B.first) * (A.first - B.first) + (A.second - B.second) * (A.second - B.second)));
}

int main()
{
  fin >> N;
  for (i = 1; i <= N; i++)
    fin >> P[i].first >> P[i].second;
  sort(P + 1, P + N + 1);
  ANS = 1000000000000;
  for (i = 1; i <= N; i++)
    for (j = i + 1; j <= i + 5; j++)
      Check(P[i], P[j]);
  fout << fixed << setprecision(6) << ANS << '\n';
  fin.close();
  fout.close();
  return 0;
}