分治算法求助
查看原帖
分治算法求助
97056
枫maple楼主2023/9/12 19:05

已发现问题 无法输出r1 这是为啥?

#include<bits/stdc++.h>
using namespace std;
int m,n,a[200001],l1,s,r1,maxx=0,ans;
int maxq(int x,int y)
{
	if(x>y)
	return x;
	return y; 
}
int fen(int l, int r)
{
	if(l==r)
	return a[l];
	m=(l+r)/2;
	s=0,l1=maxx,r1=maxx;
	for(int i=m;i>=1;i--)
	{
		s+=a[i];
		l1=maxq(l1,s);
	}
	int s1=0;
	for(int i=m+1;i<=n;i++)
	{
		s1+=a[i];
		r1=max(r1,s1);
		cout<<r1;
	}
	return maxq(maxq(fen(l,m),fen(m+1,r)),l1+r1);
}
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	cin>>a[i];
	cout<<fen(1,n)
2023/9/12 19:05
加载中...