Pagini recente » Cod sursa (job #2785713) | Cod sursa (job #1672338) | Cod sursa (job #2927741) | Cod sursa (job #2774147) | Cod sursa (job #1471573)
#include <stdio.h>
#include <cstring>
#include <limits.h>
#include <algorithm>
#include <stdlib.h>
#include <time.h>
#include <bitset>
#include <string>
#include <vector>
#include <math.h>
#include <stack>
#include <queue>
#include <list>
#include <set>
#include <map>
#include <deque>
#define nmax 100010
#define inf 0x3f3f3f3f
#define mp make_pair
using namespace std;
typedef long long ll;
struct date { ll x,y; };
int n,i,j;
double sol;
date t[nmax];
inline double abss(double x) { if (x<0) return (-x); else return x; }
inline double min(double x,double y) { if (x<y) return x; else return y; }
double sqr(double x) { return (x*x); }
bool cmp(date x,date y)
{
if (x.x==y.x) return (x.y<y.y); else
return (x.x<y.x);
}
double distan(date x,date y)
{
return sqrt(sqr(double(x.x-y.x))+sqr(double(x.y-y.y)));
}
ll ok(date x,date y)
{
if (x.x==y.x) return abss(double(y.y-x.y)); else
return abss(x.x-y.x);
}
int main() {
freopen("cmap.in","r",stdin);
freopen("cmap.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++) scanf("%d %d",&t[i].x,&t[i].y);
sort(t+1,t+n+1,cmp); sol=1e16;
for (i=1;i<=n;i++)
for (j=i+1;j<=n && ok(t[i],t[j])<sol;j++)
if (abss(double(t[j].y-t[i].y))<sol) sol=min(sol,distan(t[j],t[i]));
printf("%f",sol);
return 0;
}