/*
* POJ_2253.cpp
*
* Created on: 2013年11月9日
* Author: Administrator
*/
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn = 210;
int x[maxn],y[maxn];
double a[maxn][maxn];
int n;
double dist(int i,int j){
return sqrt((x[i]-x[j])*(x[i]-x[j]) + (y[i]-y[j])*(y[i]-y[j]) + 0.0);//**如果sqrt(int)的话,编译器会不知道找哪一个函数来完成任务
}
void floyd(){//传递闭包的思想
int i,j,k;
for(k = 0 ; k < n ; ++k){//枚举中间节点
for(i = 0 ; i < n ; ++i){//枚举首尾节点
for(j = 0 ; j < n ; ++j){
a[i][j] = min(a[i][j],max(a[i][k],a[k][j]));//求最大路径中的最小值
}
}
}
}
int main(){
int counter = 1;
while(scanf("%d",&n)!=EOF,n){
int i;
for(i = 0 ; i < n ;++i){
scanf("%d%d",&x[i],&y[i]);
}
int j;
for(i = 0 ; i < n ; ++i){
for(j = 0 ;j < n ; ++j){
a[i][j] = dist(i,j);
}
}
floyd();
printf("Scenario #%d\n",counter++);
printf("Frog Distance = %.3lf\n\n",a[0][1]);
}
return 0;
}