NC1 连续子数组最大和(ACM版本)
解析:注意一下,数据范围
#include <stdio.h>
#include <stdlib.h>
int main(){
int n, a[100005];
long long int sum[100005] = {0};
scanf("%d", &n);
for(int i = 0; i < n; i++){
scanf("%d", &a[i]);
}
sum[0] = a[0];
for(int i = 1; i < n; i++){
if(a[i] <= sum[i-1] + a[i]){
sum[i] = sum[i-1] + a[i];
}else{
sum[i] = a[i];
}
}
long long int max = -9999;
for(int i = 0; i < n; i++){
if(max < sum[i]){
max = sum[i];
}
}
printf("%lld", max);
return 0;
}