MOOC 01-复杂度2 Maximum Subsequence Sum

 1 #include <stdio.h>
 2 int main(){
 3     int n, flag = 1, first_flag = 1, positive_flag = 0;
 4     int sum = 0, summax = 0;
 5     int st = 0, end = 0, st_max = 0, end_max = 0, first = 0;
 6     scanf("%d", &n);
 7     for(int i = 0; i < n; i++){
 8       scanf("%d", &end);
 9       first_flag && (first = end) && (first_flag = 0); // 短路求值
10       end >= 0 && (positive_flag = 1);                 // 短路求值
11       !flag || (flag = 0) || (st = end);               // 短路求值
12       sum += end;
13       if (summax < sum){
14         summax = sum;
15         st_max = st;
16         end_max = end;
17       }
18       !(sum < 0)||!(flag = 1)||(sum = 0);          // 短路求值
19     }
20     if (positive_flag)
21       printf("%d %d %d", summax, st_max, end_max);
22     else
23       printf("%d %d %d", summax, first, end);
24     return 0;
25 }

猜你喜欢

转载自www.cnblogs.com/zjsaipplp/p/10423641.html
今日推荐