Cod sursa(job #1400209)

Utilizator MihailPJack ONeill MihailP Data 25 martie 2015 10:15:16
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 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;
		int ok = 0;
		if (max < best)
		{
			ind2 = i;
			max = best;
			ok = 1;
		}
		if (best < 0)
		{
			ind1 = i + 1;
			ind2 = i + 1;
			best = 0;
		}
		if (max<=X && ok==0)
		{
			ind1 = ind2 = i;
			max = X;
		}
	}
	fprintf(g, "%lld %lld %lld", max, ind1, ind2);
	return 0;
}