51分救救qwq
  • 板块P1577 切绳子
  • 楼主QwQ__
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/8/23 14:46
  • 上次更新2023/10/27 14:01:42
查看原帖
51分救救qwq
541907
QwQ__楼主2022/8/23 14:46
#include <bits/stdc++.h>
using namespace std;
const int maxn=20000;
int n,w;
double a[maxn];
int main(){
	cin>>n>>w;int sum=0;
	for(int i=1;i<=n;i++){
		cin>>a[i];a[i]*=100;
		sum+=a[i];
	}int opo=sum/w;
	int mid=0,l=opo>>1,r=opo;
	while(l<=r){
		mid=l+r>>1;
		for(int i=1;i<=n;i++) sum+=a[i]/mid;
		if(sum==w) break;
		else if(sum<w) r=mid-1;
		else l=mid+1;
		sum=0;
	}int usm=0;
	while(1){
		mid++;for(int i=1;i<=n;i++) usm+=a[i]/mid;
		if(usm<w) break;
		usm=0;
	}
	cout<<fixed<<setprecision(2)<<(double(mid-1))/100.00;
	return 0;
}
2022/8/23 14:46
加载中...