2 f229338596 F229338596 于 2014.07.22 14:10 提问

杭电acm1003 提示Time Limit Exceeded
acm

#include
#include
main()
{
static char arr[20][100000];
int i,j,a,n=0,t,result=0,sum=0;
scanf("%d",&t);//准备输入几行t=2
if(t>=1&&t<=20){
while(n if(scanf("%d",&i) && i>=1 && i<=100000){ // 第t输入出i个数,
j =0;
arr[n][j++] = i;//第一个位置记录的是 每个一维数组的长度,以免第一个元素出现0, 用strlen 会失效
while(j<=i && scanf("%d",&a)!=EOF){
if(a>=-1000 && a<=1000)
arr[n][j++] = a;
}
}
n++;
}
}

for(i=0;i<t;i++){// t 是 输入几行
    int len = arr[i][0];
    int start,end,k;// 从新的位置开始统计和最大的组合序列
    for(j=1;j<=len;j++){// 循环次数            
        for(k=j;k<len;k++){            
                result += arr[i][k];
                if(result>sum){
                    sum = result;
                    start = j;
                    end = k;
                }

        }
        result = 0;        
    }
    printf("Case %d:\n",i+1);
    printf("%d %d %d",sum,start,end);    
    if(i+1<t){
        printf("\n\n");
    }else printf("\n");
    sum =0;
}

}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!