Cod sursa(job #489438)

Utilizator iraIrina Stanescu ira Data 2 octombrie 2010 16:38:56
Problema Subsecventa de suma maxima Scor 70
Compilator c Status done
Runda Arhiva educationala Marime 0.76 kb
#include <stdio.h>


#define infile "ssm.in"
#define outfile "ssm.out"

FILE *fin, *fout;

#define MAX(a, b) ((a)>(b)?(a):(b))

int main() {

	int i, n, ei, si, start, finish, maxsi, maxstart, maxfinish;

	fin = freopen(infile, "r", stdin);
	fout = freopen(outfile, "w", stdout);
	
	scanf("%d", &n);
	maxstart = maxfinish = start = finish = 1;

	scanf("%d", &ei);
	maxsi = si = ei;
	for (i = 1; i < n; i++) {
	
		//printf("si=%d ei=%d\n", si, ei);	
		if (si + ei >= ei) {
			finish++;
			si += ei;
		} else {
			start = finish = i + 1;
			si = ei;
		}
		if (si > maxsi) {
			maxsi = si;
			maxstart = start - 1;
			maxfinish = finish - 1;
		}

		scanf("%d", &ei);
	}
	//printf("%d %d %d\n", si, start, finish);
	printf("%d %d %d\n", maxsi, maxstart, maxfinish);

	return 0;
}