Cod sursa(job #1465031)

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

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

int main(){
	freopen("ssm.in", "r", stdin);
	freopen("ssm.out", "w", stdout);
	scanf("%d", &n);
	scanf("%d", &x);
	sum[1] = x;
	min[1] = x;
	indmin[1] = 1;
	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];
		indmin[i] = min[i - 1] < sum[i - 1] ? indmin[i - 1] : i;
	}

	max = sum[1];
	indmax = 1;
	for(i = 2; i <= n; i++)
		if(max < sum[i] - min[i]){
			max = sum[i] - min[i];
			indmax = i;
		}

	printf("%d %d %d", max, indmin[indmax], indmax);
	return 0;
}