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 }
MOOC 01-复杂度2 Maximum Subsequence Sum
猜你喜欢
转载自www.cnblogs.com/zjsaipplp/p/10423641.html
今日推荐
周排行