PAT甲級1007

3581 ワード

1007 Maximum Subsequence Sum(25点)
最大フィールドとレコードの開始終了位置
 1 #include
 2 #include
 3 #include<string.h>
 4 #include
 5 #include
 6 #include
 7 #include
 8 #include
 9 using namespace std;
10 int n,a[10005];
11 int main()
12 {
13 int ans,sum,start,endd,s,e;
14 cin>>n;
15 for(int i=1;i<=n;i++)
16 cin>>a[i];
17 ans=a[1],sum=a[1];
18 start=1,s=1;
19 endd=1,e=1;
20 int ss;
21 for(int i=2;i<=n;i++)
22 {
23     ss=sum;
24       sum+=a[i];
25       if(ss<0)//if(sum26       {
27       start=i;
28       sum=a[i];
29       }
30       if(sum>ans)
31       {
32     ans=sum;
33       s=start;
34       endd=i;
35       }
36 }
37 if(ans>=0)
38 cout<" "<" "<<a[endd];
39 else
40 cout<<0<<" "<1]<<" "<<a[n];
41 return 0;
42 }

 
転載先:https://www.cnblogs.com/zuiaimiusi/p/10883541.html