Cod sursa(job #898502)

Utilizator vladvaldezVlad Dimulescu vladvaldez Data 28 februarie 2013 10:31:59
Problema Cele mai apropiate puncte din plan Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>
#include <algorithm>
#include <math.h>

using namespace std;
FILE *f=fopen("cmap.in","r");
FILE *g=fopen("cmap.out","w");

struct nod{
int x;
int y;
}v[100005];

int n,i,a,b,j,nr;
double d,min1;



int cmp(nod a,nod b)
{
  if (a.x<b.x) return 1;
 else if (a.x==b.x && a.y<b.y)return 1;
 else return 0;
}


double dist(nod i, nod j)
{
     return sqrt(1ll*(i.x-j.x)*(i.x-j.x) + 1ll*(i.y-j.y)*(i.y-j.y));
}


int main()
{
    min1=99999999;
 fscanf(f,"%d",&n);

 for(i=1;i<=n;i++)
  fscanf(f,"%d %d",&v[i].x,&v[i].y);

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


 for(i=1;i<=n;i++)
  {
     for(j=i+1;j<=i+7;j++)
      {
        if(dist(v[i],v[j])<min1)min1=dist(v[i],v[j]);
      }
  }


fprintf(g,"%6lf",min1);
fclose(g);
return 0;
}