Cod sursa(job #2567502)

Utilizator michael_blazemihai mihai michael_blaze Data 3 martie 2020 17:38:16
Problema Subsecventa de suma maxima Scor 15
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

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

int main() {

	int n, index_i = -1, index_j = -1;
	long long sum;
	long long max_sum = -2147483647;
	int* arr;

	fin >> n;

	arr = new int[n];

	for (int i = 0;i < n;i ++)
		fin >> arr[i];

	for (int i = 0;i < n;i ++) {
		for (int j = 0;j < n;j ++) {
			sum = 0;
			for (int k = i;k <= j;k ++)
				sum += arr[k];

			if (max_sum == sum and (i == index_i and (j - i < index_j - index_i) or i < index_i)) {
					index_i = i;
					index_j = j;				
				} else if (max_sum < sum) {
					max_sum = sum;
					index_i = i;
					index_j = j;
				}
			}
		}

	fout << max_sum << ' ' << (index_i + 1) << ' ' << (index_j + 1);

	return 0;
}