Cod sursa(job #2909232)

Utilizator MihaiSimedreaSimedrea Mihai MihaiSimedrea Data 10 iunie 2022 08:19:51
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <climits>
#include <vector>

using namespace std;

int main()
{
	int n, bestSum = INT_MIN, sum = 0, start, end, posStart;
	vector<int> numbers;

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

	fin >> n;

	auto aux = 0;
	for(auto i = 0; i < n; i++)
	{
		fin >> aux;
		numbers.push_back(aux);
	}

	for(auto i = 0; i < n; i++)
	{
		if(sum < 0)
		{
			sum = numbers[i];
			posStart = i;
		}
		else
			sum += numbers[i];

		if(bestSum < sum)
		{
			bestSum = sum;
			start = posStart;
			end = i;
		}
	}

	fout << bestSum << " " << start + 1 << " " << end + 1;

	fin.close();
	fout.close();


	return 0;
}