您的位置:首页 > 其它

51nod 1049 最大子段和

2016-03-02 22:27 316 查看
#include <iostream>

typedef long long ll;
const int MAX = 5e4 + 5;
ll arr[MAX];

int main()
{
ll num;
std::cin >> num;
bool flag = true;
for (ll i = 0; i != num; ++i)
{
std::cin >> arr[i];
if (arr[i] > 0)
flag = false;
}
if (flag)
{
std::cout << "0\n";
return 0;
}
ll sum1 = 0, sum2 = 0;
for (int i = 0; i != num; ++i)
{
if (arr[i] > sum1 + arr[i])
sum1 = arr[i];
//sum1 += arr[i];
else
sum1 += arr[i];
if (sum1 >= sum2)
sum2 = sum1;

}
std::cout << sum2 << std::endl;
//std::cout << MaxSubArray(arr, num);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: