全TEL,萌新求助
查看原帖
全TEL,萌新求助
577957
Ohhhhhh321楼主2021/11/18 16:49
#include<cstdio>
#include<algorithm>
using namespace std;
long long a[100002],n,k;
long long pd(long long a[],long long n,long long k,long long num){
	long long k1=0;
	for(long long i=1;i<=n;i++){
		while(a[i]>=num){
			a[i]-=num;
			k1++;
		}
	}
	if(k1==k)return 1;
	if(k1>k)return 2;
	if(k1<k)return 3;
}
long long ef(long long start,long long end){
	long long mid=(start+end)/2;
	long long h=pd(a,n,k,mid);
	if(h==1)return mid;
	if(h==2)return ef(mid+1,end);
	if(h==3)return ef(start,mid-1);
}
int main(){
	long long g,max=0;
	scanf("%lld%lld",&n,&k);
	for(long long i=1;i<=n;i++){
		scanf("%lld",&a[i]);
		if(max<a[i])max=a[i];
	}
	long long ans=ef(1,max);
	while(pd(a,n,k,ans)==1)ans++;
	printf("%lld",ans-1);
	return 0;
}
2021/11/18 16:49
加载中...