为什么我样例输出是3
查看原帖
为什么我样例输出是3
1176398
xuyixuan_123楼主2025/1/26 09:53

阿巴阿巴

有大佬能帮帮我吗,该对必关~~~

#include<bits/stdc++.h> 
long long l,n,m,a[50010];
bool check(long long x){
    int ans=0,sum=0;
    for(int i=1;i<=n;i++)
        if(a[i]-sum<x){
        	ans++;
        	sum+=a[i];
		}
        else sum=a[i];
    return ans<=m;
}
int bs(){
	int l=0,r=1e9;
	int ans=0;
    while(l<=r){
        int mid=(l+r)>>1;
        if(check(mid)){
       		l=mid+1;
       		ans=mid;
		}
        else r=mid-1;
    }
    return ans;
}
int main(){
    scanf("%lld%lld%lld",&l,&n,&m);
    for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
    printf("%d\n",bs());
    return 0;
}
2025/1/26 09:53
加载中...