给定一个数字序列,A1,A2......An,求i,j,使得Ai + .....+ Aj最大,输出这个最大和。
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 110;
int A[maxn],dp[maxn];
int main(){
int n;
int index = 0;
int maxsum = 0;
while(scanf("%d",&n) != EOF){
A[index++] = n;
}
dp[0] = A[0];
for(int i =1;i < index;i++){
dp[i] =max(A[i],A[i] + dp[i - 1]);
}
for(int i = 0;i < index;i++){
if(dp[i] > maxsum){
maxsum = dp[i];
}
}
printf("%d",maxsum);
return 0;
}