Cod sursa(job #462607)
#include <cmath>
#include <vector>
#include <cstdlib>
#include <fstream>
#include <iomanip>
#include <iterator>
#include <algorithm>
/*
*
*/
using namespace std;
class point
{
double x, y;
public:
point( void ) : x(0.0), y(0.0) {}
point( double _x, double _y ) : x(_x), y(_y) {}
double dist( const point& z )
{
return sqrt( (x-z.x)*(x-z.x)+(y-z.y)*(y-z.y) );
}
bool operator<( const point& z ) const
{
return x*z.y < y*z.x;
}
friend inline istream& operator>>( istream& in, point& z )
{
in>>z.x>>z.y;
return in;
}
friend inline ostream& operator<<( ostream& out, const point& z )
{
out<<fixed<<z.x<<' '<<z.y<<'\n';
return out;
}
};
vector< point > v;
int main( void )
{
int N, i, j;
double dmin;
ifstream in( "cmap.in" );
in>>N;
copy( istream_iterator<point>(in), istream_iterator<point>(), back_inserter(v) );
dmin=v[1].dist( v[0] );
for( i=1; i < N; ++i )
for( j=1; j < N; ++j )
if( i != j )
dmin=min( dmin, v[i].dist( v[j] ) );
ofstream out( "cmap.out" );
out<<fixed<<dmin<<'\n';
return EXIT_SUCCESS;
}