Pagini recente » Cod sursa (job #825118) | Cod sursa (job #555202) | Cod sursa (job #2263599) | Cod sursa (job #3274817) | Cod sursa (job #1018286)
#include <iostream>
#include <fstream>
#include <math.h>
#include <stdlib.h>
#include <algorithm>
std::ifstream fin("cmap.in");
std::ofstream fout("cmap.out");
struct vertex
{
int x, y;
};
inline bool cmp(vertex a, vertex b)
{
if(a.x < b.x)
{
return true;
}
else
if(a.x == b.x)
{
if(a.y < b.y)
{
return true;
}
}
return false;
}
double distance(vertex a, vertex b)
{
return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
void citire(int &n, vertex noduri[])
{
fin>>n;
for(int i = 0; i < n; i++)
{
fin>>noduri[i].x>>noduri[i].y;
}
}
void rezolvare(int n, vertex noduri[])
{
double minim = 100000000001;/// pow(10, 9) + 1;
for(int i = 0; i < n - 1; i++)
{
for(int j = i + 1; j < n; j++)
{
double val = distance(noduri[i], noduri[j]);
if(val < minim)
{
minim = val;
}
}
}
//std::cout<<minim<<'\n';
FILE *fout2 = fopen("cmap.out", "w");
fprintf(fout2, "%.6lf\n", minim);
}
int main()
{
int n;
vertex noduri[100001];
citire(n, noduri);
std::sort(noduri, noduri + n, cmp);
rezolvare(n, noduri);
return 0;
}