给出一个数列(元素个数不多于100),数列元素均为负整数、正整数、0。请找出数列中的一个连续子数列,
使得这个子数列中包含的所有元素之和最大,在和最大的前提下还要求该子序列包含的元素个数最多,并输出
这个最大和以及该连续子数列中元素的个数。例如数列为4,-5,3,2,4时,输出9和3;数列为1 2 3 -5 0 7 8时,输出16和7。
#include <iostream> using namespace std; int a[101]; int n,i,ans,len,tmp,beg; int main() { cin>>n; for(i=1;i<=n;i++) cin>>a[i]; tmp=0; ans=0; len=0; beg=______(1)______; for(i=1;i<=n;i++) { if(tmp+a[i]>ans) { ans=tmp+a[i]; len=i-beg; } else if(______(2)______&&i-beg>len) { len=i-beg; } if(tmp+a[i]______(3)_____) { beg=_____(4)______; tmp=0; } else ______(5)______; } cout<<ans<<" "<<len<<endl; }