Pagini recente » Cod sursa (job #1002846) | Cod sursa (job #1232247) | Cod sursa (job #1003459) | Cod sursa (job #1105417) | Cod sursa (job #1401969)
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <math.h>
#include <utility>
#define INF (1LL<<62)
using namespace std;
int n,x,y;
double minim = 1<<30;
std::vector< std::pair<int,int> > a;
bool CMPX(std::pair<int,int> A,std::pair<int,int> B)
{
if(A.first<B.first)return true;
else if(A.first==B.first&&A.second<B.second)return true;
else return false;
}
bool CMPY(std::pair<int,int> A,std::pair<int,int> B)
{
if(A.second<B.second)return true;
else if(A.second==B.second&&A.first<B.first)return true;
else return false;
}
int main()
{
freopen("cmap.in","r",stdin);
freopen("cmap.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;++i)
{
scanf("%d %d",&x,&y);
a.push_back( std::make_pair(x,y) );
}
sort(a.begin(),a.end(),CMPX);
for(int i=0;i<a.size()-1;++i)
{
if(minim>(sqrt((a[i].first-a[i+1].first)*(a[i].first-a[i+1].first)+(a[i].second-a[i+1].second)*(a[i].second-a[i+1].second))))
{
minim = (sqrt((a[i].first-a[i+1].first)*(a[i].first-a[i+1].first)+(a[i].second-a[i+1].second)*(a[i].second-a[i+1].second)));
}
}
sort(a.begin(),a.end(),CMPY);
for(int i=0;i<a.size()-1;++i)
{
if(minim>(sqrt((a[i].first-a[i+1].first)*(a[i].first-a[i+1].first)+(a[i].second-a[i+1].second)*(a[i].second-a[i+1].second))))
{
minim = (sqrt((a[i].first-a[i+1].first)*(a[i].first-a[i+1].first)+(a[i].second-a[i+1].second)*(a[i].second-a[i+1].second)));
}
}
printf("%f",minim);
return 0;
}