当前位置 : 主页 > 编程语言 > java >

poj2479Maximum sum

来源:互联网 收集:自由互联 发布时间:2022-08-10
刚刚开始一直错 一直错 原来是i + 1 已经大于n了。。。本以为是0没关系的,看来不能想当然 #include stdio.h #includelimits.h #include string.h int main () { int i , t , n , maxsum , sum ; int a [ 50005 ], arr1


刚刚开始一直错 一直错 原来是i+1已经大于n了。。。本以为是0没关系的,看来不能想当然#include <stdio.h>
#include<limits.h>
#include <string.h>
int main()
{
int i,t,n,maxsum,sum;
int a[50005],arr1[50005],arr2[50005];
scanf("%d",&t);
while(t--)
{
memset(arr1,0,sizeof(arr1));
memset(arr2,0,sizeof(arr2));
memset(a,0,sizeof(a));
scanf("%d",&n);
sum=0,maxsum=INT_MIN;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
if(sum>maxsum)
maxsum=sum;
if(sum<0)
sum=0;
arr1[i]=maxsum;
}
sum=0,maxsum=INT_MIN;
for(i=n-1;i>=0;i--)
{
sum+=a[i];
if(sum>maxsum)
maxsum=sum;
if(sum<0)
sum=0;
arr2[i]=maxsum;
}
maxsum=INT_MIN;
for(i=0;i<n-1;i++)//就错这里了,应该i<n-1,不是i<n
if(arr1[i]+arr2[i+1]>maxsum)
maxsum=arr1[i]+arr2[i+1];
printf("%d\n",maxsum);
}
return 0;
}


上一篇:nyoj613 免费馅饼 动态规划
下一篇:没有了
网友评论