一直算不出来。
查看原帖
一直算不出来。
486210
lyxumingze楼主2021/8/5 17:38

求助

#include<iostream>
using namespace std;
int a[100000]={0},n,m;
int d(int mid){
	int len=0;
	for(int i=0;i<n;i++){
		if(a[i]>mid){
			len+=a[i]/m;
		}
	}
	return len;
}
int f(int l,int r){
	int mid=(l+r)/2;
	if(l>r){
		return l;
	}
	if(d(mid)>m){
		return f(mid+1,r);
	}else{
		return f(l,mid-1);
	}
}
int main(){
	int ml=0;
	cin>>n>>m;
	for(int i=0;i<n;i++){
		cin>>a[i];
		ml=(a[i]>ml?a[i]:ml);
	}
	cout<<f(0,ml+1)<<endl;
	return 0;
}
2021/8/5 17:38
加载中...