Pagini recente » Cod sursa (job #2283569) | Cod sursa (job #1547546) | Cod sursa (job #842346) | Cod sursa (job #2054047) | Cod sursa (job #2094489)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream f("cmap.in");
ofstream g("cmap.out");
struct pct{int x, y;};
void afis(int n, pct v[])
{
cout<<n<<endl;
for(int i=1; i<=n; i++)
cout<<v[i].x<<" "<<v[i].y<<endl;
cout<<endl;
}
double calc(pct a, pct b)
{
return sqrt(pow(b.x-a.x, 2)+pow(b.y-a.y, 2));
}
int compar(pct a, pct b)
{
if(a.x<b.x || a.x==b.x && a.y<b.y)
return -1;
else if(a.x>b.x || a.x==b.x && a.y>b.y)
return 1;
else return 0;
}
void inserare(pct a, int &k, pct v[])
{
int i=k;
while(i>0 && compar(a, v[i])<0)
{
v[i+1]=v[i];
i--;
}
v[i+1]=a;
k++;
}
double det_dist(pct v[], int n)
{
double d_min=10000000;
for(int i=1; i<n; i++)
{
double d=calc(v[i], v[i+1]);
if(d<d_min)
d_min=d;
}
return d_min;
}
void prelucrare(pct v[], int n)
{
int k=0;
pct a;
f>>n;
for(int i=1; i<=n; i++)
{
f>>a.x>>a.y;
inserare(a, k, v);
}
//afis(n, v);
g<<det_dist(v, n);
}
int main()
{
pct v[100001];
int n;
prelucrare(v, n);
return 0;
}