Cod sursa(job #999350)

Utilizator diac_paulPaul Diac diac_paul Data 19 septembrie 2013 23:17:11
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
#define NMax 6000005
#define INF 2000000000

int n;
int s[NMax];

int ssmV = 0, ssmP = 0;

int rez = -INF, rezSt, rezDr;

int main()
{
	freopen("ssm.in", "r", stdin);
	freopen("ssm.out", "w", stdout);

	scanf("%d", &n);

	int ss = 0;

	for (int i = 1; i <= n; i++)
	{
		scanf("%d", &s[i]);

		ss += s[i];

		if (ss - ssmV > rez)
		{
			rez = ss - ssmV;
			rezSt = ssmP + 1;
			rezDr = i;
		}

		if (ssmV > ss)
		{
			ssmV = ss;
			ssmP = i;
		}
	}

	printf("%d %d %d\n", rez, rezSt, rezDr);

	return 0;
}