Dropping tests POJ

参考的事这个博客

#include <set>
#include <map>
#include <queue>
#include <math.h>
#include <vector>
#include <string>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
 
#define eps 1e-7
using namespace std;
 
int n,k;
double a[1005],b[1005],t[1005];
 
double does(double num)
{
    for(int i=0;i<n;i++)
    {
        t[i]=a[i]-num*b[i];
    }
    sort(t,t+n);
    double sum=0.0;
    for(int i=k;i<n;i++)
    {
        sum+=t[i];
    }
    return sum;
}
 
int main()
{
    while(scanf("%d%d",&n,&k),n||k)
    {
        for(int i=0;i<n;i++)
        {
            scanf("%lf",&a[i]);
        }
        for(int i=0;i<n;i++)
        {
            scanf("%lf",&b[i]);
        }
        double l=0.0,r=1.0,mid;
        while(r-l>eps)
        {
            mid=(l+r)/2;
            if(does(mid)>0)l=mid;
            else r=mid;
        }
        printf("%.0f
",l*100);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/SunChuangYu/p/12634705.html