A
来源:互联网 发布:服装面料软件 编辑:程序博客网 时间:2024/06/07 22:00
A - Max Sum
HDU - 1003Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14.
25 6 -1 5 4 -77 0 6 -1 1 -6 7 -5
Case 1:14 1 4Case 2:7 1 6
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int main(){ int T,n,a[100001],i,k,sum,b,c,d,max; scanf("%d",&T); for(k=1;k<=T;k++) { scanf("%d",&n); scanf("%d",&a[0]); b=0;c=0;sum=a[0];max=a[0];d=0; for(i=1;i<n;i++) { scanf("%d",&a[i]); if(sum<0) { sum=0; b=i; } sum=sum+a[i]; if(sum>max) { d=b; max=sum; c=i; } } printf("Case %d:\n",k); printf("%d %d %d\n",max,d+1,c+1); if(k!=T) { printf("\n"); } }return 0;}