求助……
查看原帖
求助……
401641
_MJawa_楼主2021/1/27 09:49

我这个为什么会RE?

#include<cstdio>
#include<cstdlib>
#include<cstring>

using namespace std;

int n,z[100010],m;

int get(int x)
{
	int num=0,sum=0;
	for (int a=1;a<=n;a++)
	{
		if (sum+z[a]>x)
		{
			num++;
			sum=z[a];
		}
		else sum+=z[a];
	}
	return num;
}

int main()
{
	scanf("%d%d",&n,&m);
	for (int a=1;a<=n;a++)
		scanf("%d",&z[a]);
	int l=0,r=0;
	for (int a=1;a<=n;a++)
	{
		if(l<z[a]) l=z[a];
		r+=z[a];
	}
	l--;
	while (l+1!=r)
	{
		int mid=(l+r)/2;
		int num=get(mid);
		if (num<=m) r=m;
		else l=m;
	}
	printf("%d\n",r);
	return 0;
}
2021/1/27 09:49
加载中...