hdu 1231 最大连续子序列

 
#include<stdio.h>   
#include<stdlib.h>   
#define size 11111 
int main(){
	int c1[size];
	int s,i;int t1,t2,starts;int maxx;int sum ;
	while(scanf("%d",&s),s)
	{  

		for(i=0;i<s;i++){
			scanf("%d",c1+i);  //输入每一个数大小并存入数组
		}maxx = -1;
		for(i=0,t1 =0,t2 =0, sum = 0;i<s;i++){ 
			if(sum<0){
				t1 = i;
				sum = c1[i];  //开始累加下一个sum的值 而上一个sum的值存在了maxx 中
			}
			else
			{
				sum += c1[i];
			}
			if(sum > maxx){
				maxx = sum; t2 = i;starts = t1;
			}
		}
		if(maxx<0)  
			printf("%d %d %d\n",0,c1[0],c1[s-1]);
		else
			printf ("%d %d %d\n",maxx,c1[starts],c1[t2]);
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值