最大字段和
#include <iostream>
using namespace std;
#define MAX 10001
int n;
int a[MAX];
int b[MAX];
int max = 0;
int max_sum()
{
for (int i = 0; i < n; i++)
{
if (i == 0)
{
b[i] = a[i];
max = b[i];
}
else
{
if (b[i - 1] <= 0)
b[i] = a[i];
else
b[i] = b[i - 1] + a[i];
if (b[i] > max)
max = b[i];
}
}
cout << max;
}
int main()
{
cin >> n;
int g = 0;
for (int i = 0; i < n; i++)
{
cin >> a[i];
if (a[i] >= 0) { g = 1; }
}
if (g) {
max_sum( );
}
else {
cout << 0;
}
}
运行结果