最大连续子序列和(经典DP) 之 hdu 1231 最大连续子序列

来源:互联网 发布:淘宝店铺广告短信 编辑:程序博客网 时间:2024/06/05 09:56
//  [8/1/2014 Sjm]/*经典问题。。。*/
#include <iostream>#include <cstdlib>#include <cstdio>using namespace std;const int MAX_K = 10005;int arr[MAX_K];int main(){//freopen("input.txt", "r", stdin);//freopen("output.txt", "w", stdout);int K;bool Judge;int ans, sum, tep, mybegin, myend;while (scanf("%d", &K) && K) {Judge = true;for (int i = 0; i < K; ++i) {scanf("%d", &arr[i]);if (Judge && (arr[i] >= 0)) {Judge = false;}}if (Judge) {printf("%d %d %d\n", 0, arr[0], arr[K - 1]);continue;}ans = sum = arr[0];mybegin = myend = tep = 0;for (int i = 1; i < K; ++i) {if (sum < 0) {tep = i;sum = 0;}sum += arr[i];if (sum > ans) {ans = sum;mybegin = tep;myend = i;}}printf("%d %d %d\n", ans, arr[mybegin], arr[myend]);}return 0;}
0 0