Cod sursa(job #1342337)

Utilizator bugyBogdan Vlad bugy Data 13 februarie 2015 21:02:46
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>
#include <limits.h>

int main() {

	FILE *f = fopen("ssm.in","r"), *g = fopen("ssm.out","w");
	
	int n, i;
	fscanf(f,"%d",&n);
	
	int x, indMin = 1, ind1 = 1, ind2 = 1, pre, min, max;
	fscanf(f,"%d",&x);
	min = max = pre = x;
	for (i = 2; i <= n; i++) {
		fscanf(f,"%d",&x);
		pre = pre + x; 
		if (min > pre) {
			min = pre;
			indMin = i;
		}
		if (max < pre - min && pre > 0) {
			max = pre - min;
			ind1 = indMin+1;
			ind2 = i;
		}
		if (max < pre) {
			max = pre;
			indMin = ind1 = 1;
		} 
		if (max < x) {
			max = x;
			ind1 = ind2 = i;
			
		}
	}
	fprintf(g,"%d %d %d\n",max,ind1,ind2);
	
	return 0;
}