直接用 $double$ 存这些数的最小值,最后一乘就行了,都没什么好说的
重点就是 $int$ 和 $double$ 的问题。
完整代码,时间复杂度:$O(n)$
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int n, m;
double x = 110.0; //注意要求最小值,所以先赋值为最大
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; i ++ ) {
int a, b;
cin >> a >> b;
x = min(x, (double)a / b); //因为刚才定义的是整数,所以需要强制转换类型
}
printf("%.6f", m * x);//最后注意是6位小数
return 0;
}
最后恶搞一下hh。
#include <cstdio>
double x = 110.0, n, m, a, b;
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i ++ ) {
cin >> a >> b;
x = min(x, (double)a / b);
}
printf("%.6f", m * x);
return 0;
}
啊这