Cod sursa(job #1163364)

Utilizator vladvlad00Vlad Teodorescu vladvlad00 Data 1 aprilie 2014 12:25:50
Problema Subsecventa de suma maxima Scor 75
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>

using namespace std;

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

struct minim
{
	int nr, poz;
};

minim m[6000005];
int n, x, maxim, in, sf, s[6000005];

int main()
{
	int i;

	fin >> n;
	for (i=1;i<=n;i++)
	{
		fin >> x;
		s[i] = s[i-1]+x;
		m[i].nr = s[i];
		m[i].poz = i;
		if (i!=1)
			if (m[i-1].nr<m[i].nr)
				m[i] = m[i-1];
	}
	for (i=1;i<=n;i++)
		if (s[i]-m[i].nr > maxim)
		{
			in = m[i].poz;
			sf = i;
			maxim = s[i]-m[i].nr;
		}
	fout << maxim << ' ' << in+1 << ' ' << sf << '\n';
	return 0;
}