http://poj.org/problem?id=2253
#include <iostream> #include <queue> #include <cmath> #include <iomanip> using namespace std; queue <int > que; int co[202][2]; double d[202][202],u[202][202]; int n; int main(){ ios::sync_with_stdio(false); int t=0; while(cin>>n&&n){ t++; for(int i=0;i<n;i++){ cin>>co[i][0]>>co[i][1]; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ u[i][j]=(co[i][0]-co[j][0])*(co[i][0]-co[j][0])+(co[i][1]-co[j][1])*(co[i][1]-co[j][1]); d[i][j]=sqrt(u[i][j]); } } for(int k=0;k<n;k++){ for(int j=0;j<n;j++){ for(int i=0;i<n;i++){ if(d[i][j]>max(d[i][k],d[k][j])){ d[i][j]=max(d[i][k],d[k][j]); } } } } cout<<"Scenario #"<<t<<endl; cout<<"Frog Distance = "<<setiosflags(ios::fixed)<<setprecision(3)<<d[0][1]<<endl<<endl; } return 0; }