superman

聚精会神搞建设 一心一意谋发展
posts - 190, comments - 17, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

ZOJ 1092 - Arbitrage

Posted on 2008-03-23 13:09 superman 阅读(223) 评论(0)  编辑 收藏 引用 所属分类: ZOJ
 1 /* Accepted 1092 C++ 00:00.34 852K */
 2 #include <string>
 3 #include <iostream>
 4 
 5 using namespace std;
 6 
 7 int main()
 8 {
 9     int n, m, cases = 0;
10     string currency[30];
11     while((cin >> n) && n) {
12         for(int i = 0; i < n; i++)
13             cin >> currency[i];
14         cin >> m;
15         
16         double f[30][30= {0};
17         for(int i = 0; i < n; i++)
18             f[i][i] = 1.00;
19         
20         string s, t;
21         double exchangeRate;
22         for(int k = 0; k < m; k++) {
23             cin >> s >> exchangeRate >> t;
24             int i, j;
25             for(i = 0; i < n; i++)
26                 if(currency[i] == s)
27                     break;
28             for(j = 0; j < n; j++)
29                 if(currency[j] == t)
30                     break;
31             f[i][j] = exchangeRate;
32         }
33         
34         for(int k = 0; k < n; k++)
35         for(int i = 0; i < n; i++)
36         for(int j = 0; j < n; j++)
37             f[i][j] >?= f[i][k] * f[k][j];
38         
39         bool Yes = 0;
40         for(int i = 0; i < n; i++)
41             if(f[i][i] > 1.00) {
42                 Yes = 1;
43                 break;
44             }
45         cases++;
46         cout << "Case " << cases << "";
47         if(Yes)
48             cout << "Yes" << endl;
49         else
50             cout << "No"  << endl;
51     }
52     return 0;
53 }
54 

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理