Cod sursa(job #2769558)

Utilizator sebimihMihalache Sebastian sebimih Data 16 august 2021 18:03:40
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int MAXN = 7000005;
const int INFINIT = (1 << 31);

int sum[MAXN];

int main() 
{
	int n;
	fin >> n;

	int ans = -INFINIT, minSum = 0;
	int startIndex = 0, endIndex = 0;

	for (int i = 1; i <= n; i++)
	{
		fin >> sum[i];
		sum[i] += sum[i - 1];

		if (sum[i] - minSum > ans)
		{
			ans = sum[i] - minSum;
			endIndex = i;
		}

		if (sum[i] < minSum)
		{
			minSum = sum[i];
			startIndex = i + 1;
		}
	}

	fout << ans << ' ' << startIndex << ' ' << endIndex;
}

/*
	
	7
	5 -6 3 4 -2 3 -3

	5 -1 2 6  4 7  4 

*/