一道非常简单的题哈(萌新

Alter_Jade 2018-05-16 09:48:24
杭电1003这道http://acm.hdu.edu.cn/showproblem.php?pid=1003
为啥我提交总是wrong answer啊?求解答谢谢各位!!
附:
#include<stdio.h>

// 5 -1 4 33 0 9 error.

main(){

int T,count=0,i,l,r,N;
int sum1,sum2,max,max1,max2,a[100000];

scanf("%d",&T);
while(T--){

max=0;
sum1=0;
sum2=0;

count++;

scanf("%d",&N);
a[0]=N;
for(i=1;i<=N;i++){
scanf("%d",&a[i]);
}
//forward
max1=a[1];
l=1;
for(i=1;i<=N;i++){
sum1+=a[i];
if(max1<sum1){
max1=sum1;
l=i;
}
}

//reverse
max2=a[N];
r=N;
for(i=N;i>=1;i--){
sum2+=a[i];
if(max2<=sum2){ //r尽可能靠左 (出现0时选最先的序列
max2=sum2;
r=i;
}
}
if(l>=r){
for(i=r;i<=l;i++)
max+=a[i];
printf("case %d:\n%d %d %d",count,max,r,l);
}else{
if(max1>max2)max=max1;
else max=max2;
printf("case %d:\n%d %d %d",count,max,l,r);
}
printf("\n\n");

}
}
...全文
705 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
永远的追梦人 2018-05-16
  • 打赏
  • 举报
回复
你试下3 1 -1 1和3 4 -5 5的输出
Alter_Jade 2018-05-16
  • 打赏
  • 举报
回复

#include<stdio.h>

// 5 -1 4 33 0 9 error.

main(){
	
	int T,count=0,i,l,r,N;
	int sum1,sum2,max,max1,max2,a[100000];
	
	scanf("%d",&T);
while(T--){
    
    max=0;
    sum1=0;
	sum2=0; 
    
	count++;
	
	scanf("%d",&N);
	a[0]=N;
	for(i=1;i<=N;i++){
		scanf("%d",&a[i]);
	}
	//forward
	max1=a[1];
	l=1;
	for(i=1;i<=N;i++){
		sum1+=a[i];
		if(max1<sum1){
			max1=sum1;
			l=i;
		}
	}
	
    //reverse
	max2=a[N];
	r=N;
	for(i=N;i>=1;i--){ 
		sum2+=a[i];
		if(max2<=sum2){   //r尽可能靠左 (出现0时选最先的序列 
			max2=sum2;
			r=i;
		}
	}
	if(l>=r){
		for(i=r;i<=l;i++)
		    max+=a[i]; 
		printf("case %d:\n%d %d %d",count,max,r,l);
	}else{
		if(max1>max2)max=max1;
		else max=max2;
		printf("case %d:\n%d %d %d",count,max,l,r);
	}
    printf("\n\n");
    
}
}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧