50分,玄关求调
查看原帖
50分,玄关求调
1147579
l0_0l楼主2025/7/27 20:06
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e7+10;
int n,k,sum;
int a[maxn];
bool check(int x){
	int q=x*k;
	int um=0;
	for(int i=1;i<=n;++i){
		if(x<=a[i]-1){continue;}
		um+=x-a[i]+1;
	}
	if(um<=q){
		return true;
	}
	return false;
}
int main(){
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;++i){
		scanf("%d",&a[i]);
		sum+=a[i];
	}
	int l=1,r=sum+1;
	while(l<=r){
		int mid=(l+r)/2;
		if(check(mid)){
			l=mid+1;
		}else{
			r=mid-1;
		}
	}
	printf("%d",r);
	return 0;
}
2025/7/27 20:06
加载中...