#include<bits/stdc++.h>usingnamespace std;constint N =1e3+10;// 注意:题目说了库存量和总价是整数,并没有说是正整数,所以要小心! struct moon {double stock;// 库存量double total;// 总价double avg;// 单价} m[N];boolcmp(moon a, moon b){return a.avg > b.avg;}intmain(){int n, need;
cin >> n >> need;for(int i =0; i < n; i++){
cin >> m[i].stock;}for(int i =0; i < n; i++){
cin >> m[i].total;
m[i].avg = m[i].total / m[i].stock;}sort(m, m + n, cmp);double ans =0;int i =0;for(int i =0; i < n; i++){if(need >= m[i].stock){
ans += m[i].total;
need -= m[i].stock;}else{
ans += m[i].avg * need;break;}}printf("%.2f", ans);return0;}