#include <iostream>
#include <string.h>
#include <algorithm>
#include <math.h>
#include <iomanip>
using namespace std;
double par[220][220];
double dis[220];
int vis[220];
int n;
double ans;
class node
{
public:
int x;
int y;
};
node nodes[202];
void init()
{
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
if(i!=j)
{
double tmp=sqrt((double)((nodes[i].x-nodes[j].x)*(nodes[i].x-nodes[j].x)+(nodes[i].y-nodes[j].y)*(nodes[i].y-nodes[j].y)));
par[i][j]=tmp;
par[j][i]=tmp;
}
else
{
par[i][j]=0;
par[j][i]=0;
}
memset(vis,0,sizeof(vis));
}
void dj()
{
vis[1]=1;
for(int i=2; i<=n; i++)
dis[i]=par[1][i];
dis[1]=0;
while(1)
{
int v=-1;
double min_dis=10000000;
for(int i=1; i<=n; i++)
{
if(!vis[i] && min_dis>dis[i])
{
min_dis=dis[i];
v=i;
}
}
if(v==-1)
{
ans=dis[2];
return ;
}
vis[v]=1;
for(int i=1; i<=n; i++)
if(!vis[i] && dis[i]>max(dis[v],par[v][i] ))
dis[i]=max(dis[v],par[v][i] );
}
}
int main()
{
int t=0;
while(cin>>n,n)
{
for(int i=1; i<=n; i++)
{
cin>>nodes[i].x>>nodes[i].y;
}
init();
dj();
cout<<"Scenario #"<<++t<<endl<<"Frog Distance = "<<fixed<<setprecision(3)<<ans<<endl<<endl;
}
return 0;
}
uva534
最新推荐文章于 2021-08-04 15:15:41 发布