解题思路:寻找最大子列和,并输出最大子列和的第一个数和最后一个数
#include <stdio.h> int main(int argc,char **agrv) { int n; int i; scanf("%d",&n); int a[n]; int b[2]; int sum=0; int max=0; int cnt=0,count=0,tmp=0; for(i=0; i<n; i++) { scanf("%d",&a[i]); if(a[i]<0) cnt++; sum+=a[i]; if(sum>=0) { if(sum>max) { b[0]=a[tmp]; max=sum; b[1]=a[i]; } } else { sum=0; tmp=i+1; } } if(cnt!=n) printf("%d %d %d",max,b[0],b[1]); else printf("0 %d %d",a[0],a[n-1]); return 0; }