C++ http://ybt.ssoier.cn:8088/problem_show.php?pid=1243
#include<iostream>
using namespace std;
int n,m,a[1001],num;
bool check(int n)
{
int s=0,k=0;
for(int i=0;i<n;i++)
{
if(a[i]>n)
{
return 0;
}
if(s+a[i]<n)
{
s+=a[i];
}
else
{
s=a[i];
k++;
}
}
if(k>=m)
{
return 0;
}
else
{
return 1;
}
}
int main()
{
int l,r,ans=0,min=1e5+9,mid;
cin>>n>>m;
for(int i=0;i<n;i++)
{
cin>>a[i];
ans+=a[i];
min=(min>a[i]?a[i]:min);
}
l=min;r=ans;
while(l<=r)
{
mid=(l+r)/2;
if(check(mid))r=mid-1;
else {num=mid;l=mid+1;}
}
cout<<num;
return 0;
}
疑问:
所有测试点均 运行错误
怎么找都找不到