注释解决段错误
/*
14:50-15:11
*/
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int maxn = 1005;
typedef struct P
{
double a, b, c;
}P;
P p[maxn];
bool cmp(P a, P b)
{
return a.c < b.c;
}
int main()
{
int n ;
double m;
while(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;
if(p[i].b != 0)
p[i].c = p[i].a / p[i].b;
else
m -= p[i].a;
//cout << p[i].a/p[i].b << endl;
}
sort(p, p + n, cmp);
double ans = 0;
int i = 0;
while(m && i < n) ///i < n
{
if(m > p[i].a)
{
ans += p[i].b;
m -= p[i].a;
}
else
{
ans += p[i].b * m/ p[i].a ;
m -= m;
}
i++;
}
printf("%.2f\n", ans);
}
return 0;
}