#include <stdio.h> #include <malloc.h> //关键点在第17行,理解为如果前面的累加结果是累赘即<0,那么就断掉 int main() { int len ; scanf("%d",&len); int *array=(int*)malloc(sizeof(int)*len); int *dp=(int*)malloc(sizeof(int)*len); for(int i = 0;i<len;i++){ int a; scanf("%d",&a); array[i] = a; } dp[0] = array[0]; int res = array[0]; for(int i = 1;i<len;i++){ dp[i] = dp[i-1]+array[i]> array[i]?dp[i-1]+array[i]:array[i]; res =res>dp[i]?res:dp[i]; } printf("%d",res); return 0; }