| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:AC留念In Reply To:AC留念 Posted by:234204798 at 2015-09-06 23:18:10 #include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int T;
int n;
int a[50001];
int dp[50001];
int big[50001];
int dp2[50001];
int ans;
int main()
{
scanf("%d",&T);
while (T--)
{
ans=-0x7fffffff;
memset(a,0,sizeof(a));
memset(dp,-0x7f,sizeof(dp));
memset(dp2,-0x7f,sizeof(dp2));
memset(big,-0x7f,sizeof(big));
scanf("%d",&n);
for (int i=1;i<=n;++i) scanf("%d",&a[i]);
big[1]=dp[1]=a[1];
dp2[n]=a[n];
for (int i=2;i<=n;++i)
{
dp[i]=max(dp[i-1]+a[i],a[i]);
big[i]=max(big[i-1],dp[i]);
}
for (int i=n-1;i>=1;--i)
dp2[i]=max(dp2[i+1]+a[i],a[i]);
for (int i=n;i>=1;--i)
ans=max(ans,dp2[i]+big[i-1]);
printf("%d\n",ans);
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator