Cod sursa(job #739767)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 23 aprilie 2012 20:46:19
Problema Cele mai apropiate puncte din plan Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <fstream>
#define LE 100636
#include <algorithm>
#include <iomanip>
#define inf 1000000000
#include <cmath>
#define ll long long
using namespace std;
ifstream f("cmap.in");
ofstream g("cmap.out");

struct trei
{
  ll x,y,suma;
} A[LE],S1,S2;

ll  n,i,j;
float minim,D;

ll cmp(trei a,trei b)
{
  return a.suma<b.suma;
}

float  DIST( trei a,trei b)
{
  return sqrt((a.y-b.y)*(a.y-b.y)+(a.x-b.x)*(a.x-b.x));
}


int main()
{
  f>>n;
  for(i=1; i<=n; ++i)
    {
      f>>A[i].x>>A[i].y;
      A[i].suma=A[i].x+A[i].y;
    }

  sort(A+1,A+n+1,cmp);

minim=inf;

  for(i=1; i<=n; ++i)
    for(j=i+1; j<=i+50&&j<=n; ++j)
      {
        D=DIST(A[i],A[j]);
        if (D<minim){
          minim=D;
        S1=A[i];
        S2=A[j];
        }
      }

  g<<setprecision(7)<<fixed;
  g<<minim<<'\n';


  f.close();
  g.close();
  return 0;
}