#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> #include<set> #define ll long long using namespace std; const int maxn = 200010; const int inf = 0x3f3f3f3f; struct node { double a, b, c; }p[100]; int cmp(node x, node y) { return x.c < y.c; } int main() { int t; cin >> t; while (t--) { int n, m; cin >> n >> m; for (int i = 0; i < n; i++) { cin >> p[i].a; } for (int i = 0; i < n; i++) { cin >> p[i].b; p[i].c =p[i].b / p[i].a; } sort(p, p + n,cmp); double sum = 0; for (int i = n-1; i >=0 ; i--) { if (m - p[i].a > 0) { sum += p[i].b; m = m - p[i].a; } else { sum += p[i].c * m; break; } } printf("%.2f ", sum+1e-7); } }