奶茶
某种奶茶由 n 种饮品(编号 1∼n)混合调制而成。
在调制该奶茶时,n 种饮品必须严格按照 a1:a2:…:an 的比例进行混合。
n 种饮品的实际现有量分别为 b1,b2,…,bn升。
现在,请你用一个最大容积为 v升的量杯来调制该奶茶,利用此量杯一次可以调制出 0∼v 升奶茶。
由于时间有限,你只能调制一次。
请问,利用现有材料和给定量杯,你最多可以调制出多少升奶茶。
注意:
调制出的奶茶不一定是整数。
由于只能调制一次,所以无论材料多么充裕,你都最多只能调制出 v 升奶茶。
输入格式
第一行包含两个整数 n,v。
第二行包含 n个整数 a1,a2,…,an。
第三行包含 n 个整数 b1,b2,…,bn。
输出格式
一个实数,表示可以调制出的奶茶的最大量(单位:升)。
输出结果与正确答案的相对或绝对误差小于 10−4,则视为正确。
样例输入 复制
1 100
1
40
样例输出 复制
40.0
提示
数据范围
前 4个测试点满足 1≤n≤2。
所有测试点满足 1≤n≤20,1≤v≤10000,1≤ai≤100,0≤bi≤100。
来源/分类
数学
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
int a[50],b;
int main()
{
int n,v;
double ans=0;
cin>>n>>v;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
{
cin>>b;
ans=max(ans,1.0*b/a[i]*1.0);
}
cout<<fixed<<setprecision(1)<<ans<<endl;
return 0;
}