赞
踩
#include <stdio.h> #include <algorithm> using namespace std; long long s[1000001]; long long dp[1000002];//dp[i]是前i个元素中必须包含右边缘的最大子序和 int main() { int n; scanf("%d",&n); for(int i = 0; i< n;i++){ scanf("%lld",&s[i]); } dp[1] = s[0]; long long curmax = dp[1]; for(int i = 2;i<=n;i++){ if(dp[i-1] <= 0){ dp[i] = s[i-1]; }else{ dp[i] = s[i-1]+dp[i-1]; } curmax = max(dp[i],curmax); } printf("%lld",curmax); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。