Cod sursa(job #550657)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 9 martie 2011 20:27:15
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
# include <cstdio>
using namespace std;
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;
}