Cod sursa(job #2530893)

Utilizator Florinos123Gaina Florin Florinos123 Data 25 ianuarie 2020 13:49:03
Problema Cele mai apropiate puncte din plan Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <fstream>
#include <algorithm>
#include <climits>
#include <cmath>
#include <iomanip>

using namespace std;

ifstream f ("cmap.in");
ofstream g ("cmap.out");

int n, i;
double minim = INT_MAX, aux;

double distanta (int x1, int y1, int x2, int y2)
{
    return sqrt( ( x1 - x2 ) * (x1 - x2) + ( y1 - y2 ) * ( y1 - y2 ) );
}

struct punct {
int x, y;
}v[100001];

bool cmp (punct a, punct b)
{
    if (a.x < b.x)
        return true;
    if (a.x == b.x)
        if (a.y < b.y)
          return true;
    return false;
}

int main()
{
   f >> n;
    for (i=1; i<=n; i++)
       f >> v[i].x >> v[i].y;
       sort(v+1, v+n+1, cmp);
    for (i=1; i<n; i++)
    {
         aux = distanta(v[i].x, v[i].y , v[i+1].x, v[i+1].y);
         if (aux < minim)
                minim = aux;
    }
    g << fixed << setprecision(6) << minim;
    return 0;
}