思路:
假设混合这种饮料的比例是1:2:3,每种饮料分别的分量是20:30:20,那么首先需要明确这个比例中的那个短板,也就是最小的需要使用多少的量,这才是确定能配置最多的饮料的量。也就是这里面的20/3能配置9份的量。因为其余两个分别是20/1=20份,20/2=15份,如果按照20份和15份配置,a3的量不够配置这种混合饮料。所以都应该按照9份的量来配置,故res=(1+2+3)*20/3的值,如果res比v的值大,就取v,如果比v小,则取res
const readline = require("readline")
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
})
let inputNum = 2
let inputDatas = []
rl.on("line", function (data) {
  inputDatas.push(data)
  if (inputDatas.length > inputNum) {
    let first = inputDatas[0].split(" ") // 两个正整数n和V,表示原料种类数和容器容积。(1<=n<=1000,1<=V<=1000000)
    let n = first[0] // 1-n的编号
    let v = Number(first[1]) //上限范围

    let second = inputDatas[1] //包含n个数a1,a2,a3,...an,表示n种原料的配比
    let an = second.split(" ")

    let aSum = an.reduce((pre, val) => {
      return Number(pre) + Number(val)
    }, 0)

    let third = inputDatas[2] // 输入第三行包含n个数b1,b2,b3...bn,表示小M拥有的各种原料数
    let bn = third.split(" ")

    let min = 0
    for (let i = 0; i < n; i++) {
      min = min === 0 ? bn[i] / an[i] : Math.min(bn[i] / an[i], min)
    }
    let res = aSum * min
    console.log(Number(Math.min(v, res)).toFixed(4))
    inputDatas = []
  }
})
rl.on("close", function () {
  process.exit()
})