20分求助,感觉自己没什么问题呀~
查看原帖
20分求助,感觉自己没什么问题呀~
1062212
xuzb楼主2024/6/26 19:45

20分求助!!!

只过了第四样例,但离谱的错了,求各位大佬帮orz

#include <bits/stdc++.h>
using namespace std;
int n,m;
int a[100005];
bool check(int x){
	int cur=0;
	int cnt=0;
	for(int i=1;i<=n;i++){
		cur+=a[i];
		if(cur>=x){
			cnt++;
			cur=0;
		}
	}
	if(cnt>=m){
		return true;
	}
	return false;
}
int main(){
	int l,r;
	l=r=0;
	cin>>n>>m;
    for(int i=1;i<=n;i++){
    	cin>>a[i];
		l=max(l,a[i]);
		r+=a[i];
	}
	while(l<=r){
		int mid=(l+r)/2;
		if(check(mid)){
			l=mid+1;
		}
		else{
			r=mid-1;
		}
	}
	cout<<l;
	return 0;
}
2024/6/26 19:45
加载中...