求助,80tps,第四个点WA
查看原帖
求助,80tps,第四个点WA
1382148
Sun0222楼主2024/11/26 15:21
#include<bits/stdc++.h>
using namespace std;
int n,m,a[100000+5];
int l,r,ans;
bool check(int x)
{
	int cur=0,cnt=1;
	for(int i=1;i<=n;i++)
	{
		if(cur+a[i]>x)
		{
			cur=0;
			cnt++;
		}
		cur+=a[i];
	}
	return cnt<=m;
}
int find(){
//经过自己调试后,下面几行是会WA的代码
//另一种二分写法则不会
//WA
	while(l+1<r){
		int mid=(l+r)/2;
		cout<<mid<<" "<<check(mid)<<"\n";
		if(check(mid)) {
			ans=mid;
			r=mid;
		}
		else l=mid;
	}
//WA
	return ans;
}

int main(){
	cin>>n>>m;
	else{
		for(int i=1;i<=n;i++){
		cin>>a[i];
		r+=a[i];
		l=max(l,a[i]);
	}
	cout<<find();	
	return 0;
	}
} 
2024/11/26 15:21
加载中...