题目大意:竞赛用自行车前轮有f个齿轮,后轮有r个齿轮,根据比率计算一个spread(传播率?)。
很直接的题,排序然后找商的最大值就好了,uhunt上标明level 4,我都不敢相信会这么简单,还一直在担心值重复的问题呢。
#include <cstdio>
#include <algorithm>
using namespace std; int main()
{
#ifdef LOCAL
freopen("in", "r", stdin);
#endif
int f, r;
int front[], rear[];
double ratio[];
while (scanf("%d", &f) && f)
{
scanf("%d", &r);
for (int i = ; i < f; i++)
scanf("%d", &front[i]);
for (int i = ; i < r; i++)
scanf("%d", &rear[i]);
int k = ;
for (int i = ; i < r; i++)
for (int j = ; j < f; j++)
ratio[k++] = rear[i] * 1.0 / front[j];
sort(ratio, ratio+k);
double lmax = ;
for (int i = ; i < k; i++)
{
double t = ratio[i] / ratio[i-];
if (t > lmax) lmax = t;
}
printf("%.2lf\n", lmax);
}
return ;
}