请求 DEBUG
  • 板块P10505 Dropping Test
  • 楼主Hisy
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/5/21 20:16
  • 上次更新2024/5/21 22:03:35
查看原帖
请求 DEBUG
922691
Hisy楼主2024/5/21 20:16
#include<algorithm>
#include<cstdio>
std::pair<int,int> data[10001];
double score[10001];
int size,factor;
inline bool check(double middle){
    for(int iter=1;iter<=size;++iter){
		score[iter]=1.0*data[iter].first-middle*data[iter].second;
	};
    std::sort(score+1,score+size+1);
    double sum=0.0;
    for(int iter=size;iter>size-factor;--iter){
		sum+=score[iter];
	};
    return sum>=0.0;
};
inline double bianry(double low,double high){
	double middle;
    while(high-low>1e-9){
        middle=(low+high)/2.0;
        if(check(middle)){
			low=middle;
		}else{
			high=middle;
		};
    };
    return low;
};
int main(int argc,char **argv){
    while(scanf("%d %d",&size,&factor),size|factor){
        factor=size-factor;
        for(int iter=1;iter<=size;++iter){
			scanf("%d",&data[iter].first);
		};
        for(int iter=1;iter<=size;++iter){
			scanf("%d",&data[iter].second);
		};
        printf("%d\n",int(bianry(0,1)*100+0.5));
    }
    return 0;
};
2024/5/21 20:16
加载中...