2253

1 /*
2 又一个bellman ford算法
3 */
4
5 // include file
6 #include <cstdio>
7 #include <cstdlib>
8 #include <cstring>
9 #include <cmath>
10 #include <cctype>
11 #include <ctime>
12
13 #include <iostream>
14 #include <sstream>
15 #include <fstream>
16 #include <iomanip>
17 #include <bitset>
18 #include <strstream>
19
20 #include <algorithm>
21 #include <string>
22 #include <vector>
23 #include <queue>
24 #include <set>
25 #include <list>
26 #include <functional>
27
28 using namespace std;
29
30 // typedef
31 typedef long long LL;
32 typedef unsigned long long ULL;
33
34 //
35 #define read freopen("in.txt","r",stdin)
36 #define write freopen("out.txt","w",stdout)
37 #define FORi(a,b,c) for(int i=(a);i<(b);i+=c)
38 #define FORj(a,b,c) for(int j=(a);j<(b);j+=c)
39 #define FORk(a,b,c) for(int k=(a);k<(b);k+=c)
40
41 #define FF(i,a) for(int i=0;i<(a);i+++)
42 #define FFD(i,a) for(int i=(a)-1;i>=0;i--)
43 #define Z(a) (a<<1)
44 #define Y(a) (a>>1)
45
46 const double eps = 1e-6;
47 const double INF = 1e10;
48 const double Pi = acos(-1.0);
49
50 template<class T> inline T sqr(T a){return a*a;}
51 template<class T> inline T TMAX(T x,T y)
52 {
53 if(x>y) return x;
54 return y;
55 }
56 template<class T> inline T TMIN(T x,T y)
57 {
58 if(x<y) return x;
59 return y;
60 }
61 template<class T> inline void SWAP(T &x,T &y)
62 {
63 T t = x;
64 x = y;
65 y = t;
66 }
67 template<class T> inline T MMAX(T x,T y,T z)
68 {
69 return TMAX(TMAX(x,y),z);
70 }
71
72
73 // code begin
74 #define MAXN 220
75 struct node
76 {
77 int x;
78 int y;
79 }pts[MAXN];
80 double dst[MAXN];
81 int N;
82
83 double Dis(int a,int b)
84 {
85 return sqrt( (pts[a].x-pts[b].x)*(pts[a].x-pts[b].x)+(pts[a].y-pts[b].y)*(pts[a].y-pts[b].y)+0.0 );
86 }
87
88 int main()
89 {
90 read;
91 write;
92 int a,b,cas=1;
93 while(scanf("%d",&N)!=-1)
94 {
95 if(N==0) break;
96 FORi(0,N,1)
97 {
98 scanf("%d %d",&pts[i].x,&pts[i].y);
99 }
100
101 FORi(0,N,1) dst[i] = INF;
102 dst[0] = 0;
103
104 FORi(1,N,1)
105 {
106 FORj(0,N,1)
107 {
108 FORk(0,N,1)
109 {
110 if(j==k) continue;
111 // j k
112 if( TMAX(dst[j],Dis(j,k))<dst[k] )
113 {
114 dst[k] = TMAX(dst[j],Dis(j,k));
115 }
116 }
117 }
118 }
119
120 printf("Scenario #%d\n",cas++);
121 printf("Frog Distance = %.3lf\n\n",dst[1]);
122 }
123 return 0;
124 }
posted @ 2011-03-03 00:28  AC2012  阅读(494)  评论(0)    收藏  举报