题目描述
时间限制:1000ms内存限制:256MB提交通过率:58%
描述
奶牛们开始了新的生意,它们的主人约翰想知道它们到底能做得多好。这笔生意已经做了N(1≤N≤100,000)天,每天奶牛们都会记录下这一天的利润Pi(-1,000≤Pi≤1,000)。
约翰想要找到奶牛们在连续的时间期间所获得的最大的总利润。(注:连续时间的周期长度范围从第一天到第N天)。
请你写一个计算最大利润的程序来帮助他。
输入
第一行:一个整数:N
第2到N+1行:第i+1是一个整数:P_i
输出
第一行:一个整数,在连续的时间期间所获得的最大的总利润
样例1
输入
7
-3
4
9
-2
-5
8
-3
输出
14
代码:
#include<iostream>
#include<cstdio>
#include<iomanip>
using namespace std;
int n,p,max_,sum;
int main(){
cin >> n;
cin >> p;
max_ = p;
sum = p;
for (int i = 2; i <= n;i++){
scanf("%d",&p);
if (sum > 0){
sum += p;
}else sum = p;
if (sum > max_) max_ = sum;
}
printf("%d",max_);
return 0;
}