UVa 11242

  题目大意:竞赛用自行车前轮有f个齿轮,后轮有r个齿轮,根据比率计算一个spread(传播率?)。

  很直接的题,排序然后找商的最大值就好了,uhunt上标明level 4,我都不敢相信会这么简单,还一直在担心值重复的问题呢。

 1 #include <cstdio>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7 #ifdef LOCAL
 8     freopen("in", "r", stdin);
 9 #endif
10     int f, r;
11     int front[12], rear[12];
12     double ratio[110];
13     while (scanf("%d", &f) && f)
14     {
15         scanf("%d", &r);
16         for (int i = 0; i < f; i++)
17             scanf("%d", &front[i]);
18         for (int i = 0; i < r; i++)
19             scanf("%d", &rear[i]);
20         int k = 0;
21         for (int i = 0; i < r; i++)
22             for (int j = 0; j < f; j++)
23                 ratio[k++] = rear[i] * 1.0 / front[j];
24         sort(ratio, ratio+k);
25         double lmax = 0;
26         for (int i = 1; i < k; i++)
27         {
28             double t = ratio[i] / ratio[i-1];
29             if (t > lmax)  lmax = t;
30         }
31         printf("%.2lf
", lmax);
32     }
33     return 0;
34 }
View Code
原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3301743.html