Cod sursa(job #2762113)

Utilizator george_buzasGeorge Buzas george_buzas Data 5 iulie 2021 16:26:20
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
using namespace std;

int main() {
	ifstream fin("ssm.in");
	ofstream fout("ssm.out");
	int n, partial_sum[6000001] = { 0 }, v[6000001];
	fin >> n;
	for (int i = 1; i <= n; ++i) {
		fin >> v[i];
		partial_sum[i] = partial_sum[i - 1] + v[i];
	}
	int max_val = INT_MIN, start_pos = 1, end_pos = 1;
	for (int i = 1; i <= n; ++i) {
		for (int j = 0; j < i; ++j) {
			if ((partial_sum[i] - partial_sum[j] > max_val) || (partial_sum[i] - partial_sum[j] == max_val && (j + 1 < start_pos || (j + 1 == start_pos && i - j < end_pos - start_pos + 1)))) {
				max_val = partial_sum[i] - partial_sum[j];
				start_pos = j + 1;
				end_pos = i;
			}
		}
	}
	fout << max_val << " " << start_pos << " " << end_pos;
	return 0;
}