Cod sursa(job #2608432)

Utilizator michael_blazemihai mihai michael_blaze Data 1 mai 2020 12:40:45
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <algorithm>

std :: ifstream fin ("ssm.in");
std :: ofstream fout("ssm.out");

int main() {

	int n, index_i, index_j;
	int left, right;
	int sum = 0;
	int max_sum = -2147483647;
	int* arr;

	fin >> n;

	arr = new int[n + 1];

	for (int i = 1;i <= n;i ++)
		fin >> arr[i];
	
	for (int i = 1;i <= n;i ++) {
		sum += arr[i];
		right = i;

		if (max_sum < sum) {
			max_sum = sum;
			
			index_j = right;
			index_i = left;
		}

		if (sum < 0) {
			sum = 0;
			left = i + 1;	
		} 
	}

	fout << max_sum << ' ' << index_i << ' ' << index_j;

	return 0;
}