Pagini recente » Cod sursa (job #1397064) | Cod sursa (job #929619) | Cod sursa (job #109874) | Cod sursa (job #3162045) | Cod sursa (job #2336944)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin("cmap.in");
ofstream fout("cmap.out");
double my_sqrt(double x)
{
double a=1,b;
double eps=0.000001; //eroare mai mica de 10 la -6
do
{
b=a;
a=(b+x/b)/2;
//cout<<a<<'\n';
}while(a-b>eps || b-a>eps);
return a;
}
struct Punct{
int x,y;
};
double ls(Punct p1, Punct p2)
{
return my_sqrt( (p1.x-p2.x)*(p1.x-p2.x)+ (p1.y-p2.y)*(p1.y-p2.y) );
}
int main()
{
int n;
fin>>n;
int i;
Punct punct[105]={0};
//double lungimi[4950]={0};
for(i=1;i<=n;i++)
fin>>punct[i].x>>punct[i].y;
//double lminn=INT_MAX;
Punct p1,p2;
p1.x=1000000001;
p1.y=1000000001;
p2.x=-1000000001;
p2.y=-1000000001;
long double lminn=ls(p1,p2); // o lungime de segment determinata de oricare 2 puncte introduse nu poate fi mai mare decat
//aceasta valoare
int j;
//int xRet1,yRet1,xRet2,yRet2;
double l;
for(i=1;i<=n-1;i++)
for(j=i+1;j<=n;j++)
{
l=ls(punct[i],punct[j]);
/*cout<<l<<": "<<punct[i].x<<" "<<punct[i].y<<" "<<punct[j].x<<" "<<punct[j].y<<'\n';*/
if(l<lminn) {lminn=l; /*cout<<lminn<<'\n'; xRet1=punct[i].x; yRet1=punct[i].y; xRet2=punct[j].x; yRet2=punct[j].y;*/}
}
fout<<fixed<<setprecision(6)<<lminn<<'\n';
return 0;
}