求助!!!wa了四个点!!
查看原帖
求助!!!wa了四个点!!
519573
Daniel_yao楼主2022/2/10 17:20

哪位大神帮我看一下

#include<bits/stdc++.h>
using namespace std;
const int N = 100005;
long long n, m, a[N], l, r, mid, num, sum;

int find(long long k){
	while(l <= r){
		mid = (l+r) >> 1;
		num = 0, sum = 0;
		for(int i = 1;i <= n;i++){
			if(num + a[i] <= mid){
				num += a[i];
			}
			else{
				sum++;
				num = a[i];
			}
		}
		if(sum >= k){
			l = mid + 1;
		}
		else{
			r = mid - 1;
		}
	}
	return l;
}

int main(){
	cin.tie(0);
	cout.tie(0);		
	cin >> n >> m;
	for(int i = 1;i <= n;i++){
		cin >> a[i];
		l = max(l, a[i]);
		r += a[i];
	}
	sort(a+1, a+n+1);
	cout << find(m);
	return 0;
} 
2022/2/10 17:20
加载中...