标签:
原题链接:点击此处
解题思路:
题意是求哪一个区间中,数字相加的和最大,然后输出最大的和。很简单,直接暴力求出来:
将他们每个数都相加,如果为加的是负数,那么那个区间的和必然不是最大。
代码如下:
#include <iostream> #include <stdio.h> using namespace std; int main() { int t,start,end,temp,n,a,num; scanf("%d",&t); for (num=1;num<=t;num++) { int max=-10000; int sum=0; temp=1; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a); sum+=a; if(sum>max) { max=sum; start=temp; end=i; } if(sum<0) { sum=0; temp=i+1; } } printf("Case %d:\n%d %d %d\n", num, max, start, end); if (num != t) { printf("\n"); } } return 0; }
标签:
原文地址:http://www.cnblogs.com/gdvxfgv/p/5767551.html