7-1 Maximum Subsequence Sum (25分)
#include<iostream>
using namespace std;
int main()
{
int k;
cin>>k;
int a[k];
int i;
for(i=0;i<k;i++)
cin>>a[i];
int thisSum=0,maxSum=-1; //如果有子列和为0的话,会进入if,改变leftindex和rightindex!
int leftindex=0,rightindex=k-1,templeftindex=0;
for(i=0;i<k;i++)
{
thisSum+=a[i];
if(thisSum>maxSum)
{
maxSum=thisSum;
leftindex=templeftindex;
rightindex=i;
}
else if(thisSum<0)
{
thisSum=0;
templeftindex=i+1;
}
}
if(maxSum<0) maxSum=0;
cout<<maxSum<<" "<<a[leftindex]<<" "<<a[rightindex]<<endl;
return 0;
}