pat甲级1007,第四个测试点过不了,有大佬指点一下的吗

新手上路,请多包涵
#include<iostream>
#include<string.h>
#include<climits>
using namespace std;
int a[10010],d[10010];
int main(){
    int n,sum=0,temp=INT_MIN,begin,end;
    bool flag;
    memset(d,0,sizeof(d));
    memset(a,0,sizeof(a));
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    for(int i=1;i<=n;i++){
        if(a[i]>=0){
            flag=true;
            break;
        }
    }
    for(int i=1;i<=n;i++)
    {
        d[i]=max(d[i-1]+a[i],a[i]);
        if(d[i]>temp){
            end=i;
            temp=d[i];
        }

    }
    for(int j=end;j>=1;j--){
            sum+=a[j];
            if(sum==temp){
                begin=j;
            }

        }
    if(flag==false) printf("0 %d %d",a[1],a[n]);
    else printf("%d %d %d",temp,a[begin],a[end]);
}

题目来源及自己的思路

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 1.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题