#include <iostream>
#define N 10000
using namespace std;
int main()
{
int i, n, a[N], left = 0, right = 0, maxsum = -1,
currentsum = 0, temp = 0;
cin >> n;
for (i = 0; i < n; i++) {
cin >> a[i];
}
int abc = 0;
for(abc = 0; abc < n; abc++){
if(a[abc] >= 0) break;
}
if(abc == n){
cout << 0 << " " << a[0] << " " << a[n-1];
return 0;
}
for (i = 0; i < n; i++){
currentsum += a[i];
if (currentsum > maxsum) {
maxsum = currentsum;
left = temp;
right = i;
}
if (currentsum < 0) {
currentsum = 0;
temp = i + 1;
}
}
cout << maxsum << " " <<a[left] << " " << a[right] << endl;
return 0;
}
中國大學MOOC-陳越、何欽銘-數據結構-2018秋 Case 01-複雜度2 Maximum Subsequence Sum (25 分)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.