Cod sursa(job #2567688)

Utilizator michael_blazemihai mihai michael_blaze Data 3 martie 2020 18:23:57
Problema Subsecventa de suma maxima Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>

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

int main() {

	int n, index_i = 0, index_j = 0;
	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 ++) {
		sum = 0;
		for (int j = i;j < n;j ++) {
			sum += arr[j];
			if (max_sum == sum and (i < index_i or (i == index_i and (j - i < index_j - 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;
}