rt,应该是二分死循环了
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5,eps=1e-3;
int n,k;
double a[N],b[N],c[N];
bool cmp(double x,double y){
return x>y;
}
bool check(double mid){
for(int i=1;i<=n;i++)
c[i]=a[i]-b[i]*mid;
sort(c+1,c+n+1,cmp);
double s=0;
for(int i=1;i<=n-k;i++)
s+=c[i];
return s>0;
}
int main(){
while(cin>>n>>k){
for(int i=1;i<=n;i++){
cin>>a[i];
a[i]*=100;
}
for(int i=1;i<=n;i++)
cin>>b[i];
double l=0,r=1e9;
while(r-l>eps){
double mid=(l+r)/2.0;
if(check(mid))
l=mid;
else
r=mid;
}
cout<<r;
}
return 0;
}