标签:
3 0 1 1
这组数据的答案是 2 2 3
而不是 2 1 3
所以代码中注释部分存在问题
// hdu 1003 // water // Feb.16 2015 #include <cstdio> int T, n, a, m, sum, temp_begin, begin, end, CaseNum = 0; int main(int argc, char const *argv[]) { // freopen("in", "r", stdin); scanf("%d", &T); while(T--){ scanf("%d", &n); m = -11111111; sum = 0; temp_begin = begin = end = 1; for(int i = 1; i <= n; ++i){ scanf("%d", &a); if(sum <= 0){ sum = a; temp_begin = i; } else sum += a; if(sum > m){ m = sum; begin = temp_begin; end = i; } } /* for(int i = 1; i <= n; ++i){ scanf("%d", &a); sum += a; if(sum >= m){ m = sum; begin = temp_begin; end = i; } else if(sum < 0){ sum = 0; temp_begin = i + 1; } } */ printf("Case %d:\n%d %d %d\n", ++CaseNum, m, begin, end); if(T) printf("\n"); } return 0; }
标签:
原文地址:http://www.cnblogs.com/takeoffyoung/p/4293630.html