Cod sursa(job #1652043)

Utilizator AvramusAvram Andrei Marius Avramus Data 14 martie 2016 16:11:05
Problema Subsecventa de suma maxima Scor 75
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");

int n, v[6000000];

void generare() {
	int sum = -1;
	int maxim = 0 - 1 << 30;
	int start, end, start_neg=-1,sum_neg=0-1<<30;

	for (int i = 1; i <= n; i++) {
		sum += v[i];
		if (sum > maxim) {
			maxim = sum;
			end = i;
			if (sum < 0)
			{
				start_neg = i;
				sum_neg = maxim;
			}
		}
		if (sum < 0) {
			sum = 0;
			start = i+1;
		}
	}
	fout << maxim << " ";
	if (start_neg > 0 && sum_neg==maxim)
		fout << start_neg << " " << end;
	else
		fout << start << " " << end;
}

int main() {
	fin >> n;
	for (int i = 1; i <= n; i++)
		fin >> v[i];
	generare();
	return 0;
}