Cod sursa(job #1365329)

Utilizator alexandru94hahahalera alexandru94 Data 28 februarie 2015 11:23:27
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("ssm.in");
ofstream out("ssm.out");

int main()
{
	int N, s, el, suma_maxim = -1<<30, i, a_idx, start_idx, final_idx;
	in >> N; // numarul de elemente
	in >> s; // suma partiala curenta 
	for(i = 2; i <= N; i++)
	{
		// citesc elementul
		in >> el;
		s += el;
		
		// daca elementul in sine este mai mare decat suma partiala 
		// curenta atunci inseamna ca pot sa bag elementul singur sa
		// fie suma partiala, reactualizez indexul de inceput de suma
		if (el > s) {
			s = el;
			a_idx = i;
		}
		
		// daca suma partiala este mai mare decat suma maxima curenta 
		// atunci reactualizam suma maxima curenta impreuna ca indecsii
		// asociati
		if (s > suma_maxim) {
			suma_maxim = s;
			start_idx = a_idx;
			final_idx = i;
		}
	}
	// se afiseaza
	out << suma_maxim << " " << start_idx << " " << final_idx << "\n";

	return 0;
}