Cod sursa(job #2068298)

Utilizator juniorOvidiu Rosca junior Data 17 noiembrie 2017 15:59:31
Problema Cele mai apropiate puncte din plan Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 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 double ANS;
pair <long double, long double> P[VAL];

void Check(pair <long double, long double> A, pair <long double, long double> 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 = 1000000000000L;
  for (i = 1; i <= N; i++)
    for (j = i + 1; j <= i + 7; j++)
      Check(P[i], P[j]);
  fout << fixed << setprecision(7) << ANS << '\n';
  fin.close();
  fout.close();
  return 0;
}