首页 > 其他 > 详细

HDU 1231 最大连续子序列

时间:2014-12-15 00:01:16      阅读:356      评论:0      收藏:0      [点我收藏+]
 1 #include <cstdio>
 2 #include <cstring>
 3 
 4 using namespace std;
 5 const int maxn = 10000;
 6 int num[maxn+5];
 7 
 8 int main()
 9 {
10     int k;
11     while(scanf("%d" , &k)){
12         if(k == 0) break;
13         int flag = 0;
14         for(int i = 0 ; i<k ; i++){
15             scanf("%d" , num+i);
16             if(num[i] >= 0) flag = 1;
17         }
18         if(!flag){
19             printf("0 %d %d\n" , num[0] , num[k-1]);
20             continue;
21         }
22         int _max = num[0];
23         int sum = num[0];
24         int st = 0;
25         int la = 0;
26         int rec;
27         for(int i = 1 ; i<k ; i++){
28             if(sum < 0){
29                 rec = i;//记录起点
30                 sum = 0;
31             }
32             sum += num[i];
33             if(sum > _max){
34                 _max = sum;
35                 st = rec;
36                 la = i;
37             }
38         }
39         printf("%d %d %d\n" , _max , num[st] , num[la]);
40     }
41     return 0;
42 }

 

HDU 1231 最大连续子序列

原文:http://www.cnblogs.com/CSU3901130321/p/4163945.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!