Cod sursa(job #1400220)

Utilizator MihailPJack ONeill MihailP Data 25 martie 2015 10:19:23
Problema Subsecventa de suma maxima Scor 75
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>
#include <stdlib.h>
int main()
{
	FILE *f, *g;
	f = fopen("ssm.in", "r");
	g = fopen("ssm.out", "w");
	long long N, ind1, ind2, i, max, ok = 0, best, X, index;
	fscanf(f, "%lld", &N);
	fscanf(f, "%lld", &X);
	max = X;
	best = X;
	ind1 = ind2 = 1;
	for (i = 2; i <= N; i++)
	{
		fscanf(f, "%lld", &X);
		best = best + X;
		if (max < best)
		{
			ind2 = i;
			max = best;
		}
		if (best < 0)
		{
			ind1 = i + 1;
			ind2 = i + 1;
			best = 0;
		}
		if (max<X)
		{
			ind1 = ind2 = i;
			max = X;
		}
	}
	if (ind1 >= N)
		ind1--;
	if (ind2 >= N)
		ind2--;
	fprintf(g, "%lld %lld %lld", max, ind1, ind2);
	return 0;
}