最大子列和

#include<stdio.h>

void MaxSubseqSum4(int A[],int N)
{
	int ThisSum=0,MaxSum=0;
	int i;
	int first=0,last=N-1;
	int tempfirst,templast;
	for(i=0;i<N;i++)
	{
		ThisSum+=A[i];
		if(ThisSum>MaxSum)
		{
			MaxSum=ThisSum;
			first=tempfirst;
			last=i;
		}
		else if(ThisSum<0)
		{
			ThisSum=0;
			tempfirst=i+1;
		}
	}
	printf("%d %d %d\n",MaxSum,first,last);
}
int main()
{
	int A[100000]={0};
	int i,N;
	scanf("%d",&N);
	for(i=0;i<N;i++)
		scanf("%d",&A[i]);
	MaxSubseqSum4(A,N);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_42348049/article/details/80773908