Cod sursa(job #1465045)

Utilizator al.mocanuAlexandru Mocanu al.mocanu Data 26 iulie 2015 13:46:49
Problema Subsecventa de suma maxima Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>
#define MAX 6000005

int n, x, i, sum[MAX], min[MAX], indmin, max, indmax, valmin;

int main(){
	freopen("ssm.in", "r", stdin);
	freopen("ssm.out", "w", stdout);
	scanf("%d", &n);
	scanf("%d", &x);
	sum[1] = x;
	min[1] = x;
	for(i = 2; i <= n; i++){
		scanf("%d", &x);
		sum[i] = sum[i - 1] + x;
		min[i] = min[i - 1] < sum[i - 1] ? min[i - 1] : sum[i - 1];
	}

	max = sum[1];
	indmax = 1;
	valmin = sum[1];
	for(i = 2; i <= n; i++)
		if(max < sum[i] - min[i]){
			max = sum[i] - min[i];
			indmax = i;
			valmin = min[i];
		}
	indmin = 1;
	while(sum[indmin] != valmin)
		indmin++;
	printf("%d %d %d", max, indmin + 1, indmax);
	return 0;
}