问题描述
- 杭电acm1003 提示Time Limit Exceeded
-
#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("nn"); }else printf("n"); sum =0; }
}
时间: 2024-10-31 04:02:53