【PAT甲级】1007 Maximum Subsequence Sum (25 分)

题意:

给出一个整数K(K<=10000),输入K个整数。输出最大区间和,空格,区间起点的数值,空格,区间终点的数值。如果有相同的最大区间和,输出靠前的。如果K个数全部为负,最大区间和输出0,区间起点的数值为a[1],区间终点的数值为a[n]。

AAAAAccepted code:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int a[10007];
 4 int main(){
 5     int n;
 6     cin>>n;
 7     int mx=-1e9,ans=-1e9;
 8     int startt=0,endd=0;
 9     int tmp=0;
10     for(int i=1;i<=n;++i){
11         cin>>a[i];
12         if(mx<0){
13             mx=a[i];
14             tmp=a[i];
15         }
16         else
17             mx+=a[i];
18         if(mx>ans){
19             startt=tmp;
20             endd=a[i];
21             ans=mx;
22         }
23     }
24     if(ans<0)
25         cout<<"0 "<<a[1]<<" "<<a[n];
26     else
27         cout<<ans<<" "<<startt<<" "<<endd;
28     return 0;
29 }
保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
原文地址:https://www.cnblogs.com/ldudxy/p/11216897.html