http://www.cnblogs.com/perseawe/archive/2012/05/03/01fsgh.html
详细解释在上述网站。
#include"iostream"
#include"algorithm"
#include"cstring"
#include"cstdio"
#include"cmath"
using namespace std;
int m,n;
double a[100010],b[100010],c[100010],d,s,s1,s2;
int main()
{
while(~scanf("%d%d",&m,&n))
{
if(m==0&&n==0) break;
for(int i=0;i<m;i++)
scanf("%lf",&a[i]);
for(int i=0;i<m;i++)
scanf("%lf",&b[i]);
d=0.0;
s=1.0;
while(s-d>0.0000001)
{
s2=(s+d)/2;
for(int i=0;i<m;i++)
c[i]=a[i] - s2*b[i];
sort(c,c+m);
double sum=0.0;
for(int i=n;i<m;i++) sum+=c[i];
if(sum>0) d=s2;
else s=s2;
}
printf("%.0f\n",100*d);
}
return 0;
}