1007. Maximum Subsequence Sum (25)

#include "stdafx.h"
#include <iostream>

using namespace std;

int num[10010];

int main()
{
	int n;
	scanf("%d", &n);

	int i, flag = 0;
	for(i = 1; i <= n; i++)
	{
		scanf("%d", &num[i]);

		if(num[i] >= 0)
		{
			flag = 1;
		}
	}

	int cursum, maxsum = -1, resnum[2], j;
	if(flag == 0)
	{
		printf("0 %d %d\n", num[1], num[n]);
	}
	else
	{
		for(i = 1; i <= n; i++)
		{
			cursum = 0;

			for(j = i; j <= n; j++)
			{
				cursum += num[j];
				
				if(cursum > maxsum)
				{
					maxsum = cursum;
					resnum[0] = num[i];
					resnum[1] = num[j];
				}
				else if(cursum < 0)
				{
					break;
				}
			}
		}

		printf("%d %d %d\n", maxsum, resnum[0], resnum[1]);
	}

	system("pause");
	return 0;
}

 

posted on 2025-11-23 16:52  王景迁  阅读(2)  评论(0)    收藏  举报

导航