33分求调(必关注)
查看原帖
33分求调(必关注)
1703848
usuji1de楼主2025/8/5 11:38
#include<bits/stdc++.h>
using namespace std;
unsigned long long n,k,s,c,sn,cn,a[500005];
bool ch(unsigned long long x){
	sn=0;
	unsigned long long d;
	cn=0;
	for(unsigned long long i=1;i<=n;i++){
		d=ceil(a[i]/s);
		if(d<=x)cn=max(cn,d);
		else sn+=ceil(a[i]/(s+k));
	}
	if(cn>=sn)return 1;
	return 0;
}
int main(){
	cin>>n>>s>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	unsigned long long l,h;
	l=1;
	h=1e18;
	while(l<h){
		unsigned long long m=(l+h)>>1;
		
		if(ch(m)){
			h=m;	
			c=m;
		}
		else{
			l=m+1;
		}
	}
	cout<<c;
	return 0;
}
2025/8/5 11:38
加载中...