计蒜客-dp入门-利润
奶牛们开始了新的生意,它们的主人约翰想知道它们到底能做得多好。这笔生意已经做了 N (1≤N≤100,000)天,每天奶牛们都会记录下这一天的利润 Pi (−1000≤Pi≤1000)。
约翰想要找到奶牛们在连续的时间期间(至少一天)所获得的最大的总利润,请你写一个计算最大利润的程序来帮助他。
输入格式
第一行,一个整数 N,表示天数。接下来 N行,每行一个整数 Pi。输出格式一个整数,表示最大的总利润。
输出格式
一个整数,表示最大的总利润。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int inf=0x7fffffff;
int dp[100000];
int ans=-inf;
int main(){
int n;
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);}
dp[0]=a[0];
for(int i=1;i<n;i++){
dp[i]=max(a[i]+dp[i-1],a[i]);
}
for(int i=0;i<n;i++){
if(ans<dp[i])
ans=dp[i];}
cout<<ans<<endl;
return 0;
}