中國大學MOOC-陳越、何欽銘-數據結構-2018秋 Case 01-複雜度2 Maximum Subsequence Sum (25 分)

#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;
	
	
} 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章