Cod sursa(job #813183)

Utilizator fhandreiAndrei Hareza fhandrei Data 14 noiembrie 2012 23:57:34
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
// Include
#include <fstream>
using namespace std;

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

int elements;
int current, lastStart = 1;
int currentSum, maxSum = -((1<<30)-1);
int startPos, stopPos;

// Main
int main()
{
	in >> elements;
	for(int i=1 ; i<=elements ; ++i)
	{
		in >> current;
		currentSum += current;
		
		if(currentSum > maxSum)
		{
			startPos = lastStart;
			stopPos = i;
			maxSum = currentSum;
		}
		
		if(currentSum < 0)
		{
			currentSum = 0;
			lastStart = i+1;
		}
	}
	
	out << maxSum << ' ' << startPos << ' ' << stopPos << '\n';
	
	in.close();
	out.close();
	return 0;
}