蚂蚁的难题(二)

来源:互联网 发布:轩辕网络股票今日行情 编辑:程序博客网 时间:2024/04/29 01:38


http://acm.nyist.net/JudgeOnline/problem.php?pid=745

#include<iostream>
#include<string>
using namespace std;
long long a[50010];
long long dp[50010],dp1[50010];
int main()
{
 int n,i;
 long long sum,ans,ans1;
 while(cin>>n)
 {
  
  sum=0;
  dp[0]=dp1[0]=0;
  for(i=1;i<=n;i++)
  {
  cin>>a[i];
  sum+=a[i];
  }
  ans=a[1];
  ans1=a[1];
  for(i=1;i<=n;i++)
  {
  if(dp[i-1]>=0)
  dp[i]=dp[i-1]+a[i];
  else
  dp[i]=a[i];
  
  if(dp1[i-1]>=0)
  dp1[i]=a[i];
  else
  dp1[i]=dp1[i-1]+a[i];
 // printf("dp[%d]:%d ",k,dp[k]);
 
  if(dp[i]>ans)
  ans=dp[i];
  if(dp1[i]<ans1)
  ans1=dp1[i];
  }
  if(ans<sum-ans1)
  ans=sum-ans1;
  cout<<ans<<endl;
 }
 return 0;
}

0 0
原创粉丝点击