最大子段和问题

来源:互联网 发布:如何在u盘上安装ubuntu 编辑:程序博客网 时间:2024/05/01 03:16

点击打开链接

输入

第1行:整数序列的长度N(2 <= N <= 50000)第2 - N + 1行:N个整数(-10^9 <= A[i] <= 10^9)

输出

输出最大子段和。

输入示例

6-211-413-5-2

输出示例

20
#include<stdio.h>#include<algorithm>using namespace std;int main(){int n,i,j;long long int ans;long long int a[50005];long long int dp[50005]={0}; while(~scanf("%d",&n)){ans=0;for(i=0;i<n;i++){scanf("%lld",&a[i]);dp[i]=max(dp[i-1]+a[i],a[i]);ans=max(dp[i],ans);}printf("%lld\n",ans);}return 0;}


原创粉丝点击