1007 Maximum Subsequence Sum (25 分)
经典题
具体代码
#include<iostream>
#include<malloc.h>
using namespace std;
#define maxsize 100001
int main()
{
int n;
int number[maxsize + 1];
bool flag = true;
int max = 0;
int tmp = 0;
int first=0, last=0;
int first_tmp;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> number[i];
}
for (int i = 1; i <= n; i++)
{
if (!tmp)
{
first_tmp = i;
}
tmp += number[i];
if (tmp < 0)
{
tmp = 0;
}
else
{
if (tmp > max)
{
max = tmp;
last = i;
first = first_tmp;
}
}
if(number[i]==max)
{
last = i;
first = first_tmp;
}
}
if (last == 0)
{
first = 1;
last = n;
}
cout << max <<" "<<number[first]<< " " << number[last];
return 0;
}