Cod sursa(job #550654)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 9 martie 2011 20:26:16
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
# include <stdio.h>
long n, i, s1, s2, cit, min = ( (1 << 31) - 1), sol, p1, p2, pm;
int main (){
	sol = min * (-1);
	//7
    //5 -6 3 4 -2 3 -3
	freopen ("ssm.in", "r", stdin);
	freopen ("ssm.out", "w", stdout);
	scanf ("%ld", &n);
	for (i = 1; i <= n; ++i){
		scanf ("%ld", &cit);
		s1 += cit;
		if (min > s2){
			min = s2;
			pm = i - 1;
		}
		if (sol < s1 - min && i > 1){
			p1 = pm;
			p2 = i;
			sol = s1 - min;
		}
		s2 += cit;
	}
	printf ("%ld %ld %ld\n", sol, p1 + 1, p2);
	return 0;
}