Cod sursa(job #1652017)

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

int n, v[6000000];

void generare() {
	int s[501], maxim = -0 - 1 << 30, poz[501], start, end;
	s[0] = 0;
	for (int i = 1; i <= n; i++) {
		s[i] = v[i];
		poz[i] = i;
		if (s[i] <= s[i - 1] + v[i]) {
			s[i] = s[i - 1] + v[i];
			poz[i] = poz[i - 1];
		}
	}
	for (int i = 1; i <= n; i++) {
		if (s[i] > maxim) {
			maxim = s[i];
			end = i;
			start = poz[i];
		}
	}
	fout << maxim << " " << start << " " << end;
}

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