Cod sursa(job #1393639)

Utilizator dinuandAndrei-Mario Dinu dinuand Data 19 martie 2015 17:27:23
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
#include <vector>
#include <limits>

int main()
{
	std::ifstream in("ssm.in");
	std::ofstream out("ssm.out");

	int N;
	in >> N;

	std::vector<int> V(N + 1);
	for (auto &elem : V) 
		in >> elem;

	int first_index, last_index;
	long long sum = 0, sum_sol;
	sum_sol = std::numeric_limits<long long>::min();
	for (auto i = 0; i < N; i++) {
		if (sum < 0) {
			sum = 0;
			first_index = i;
		}
		sum += V[i];
		if (sum > sum_sol) {
			sum_sol = sum;
			last_index = i;
		}
	}

	out << sum_sol << " " << first_index + 1 << " " << last_index + 1 << '\n';

	return 0;
}