Cod sursa(job #531325)

Utilizator roots4Irimia Alexandru Gabriel roots4 Data 9 februarie 2011 14:22:06
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream.h>
int a , i , j , V[6000001] , sum , max , b , c, pMax, uMax, S[6000001];

//S[i] = suma maxima a unei secventye care se termina cu V[i]
// Ex -4 2 -1 3 4 -9 7
//S   4- 2  1 4 8 -1 7
// S[i] = max (S[i-1]+V[i], V[i])
int main()
{
	ifstream f("ssm.in");
	ofstream g("ssm.out");
	f>>a;
	for(i=1;i<=a;i++){
		f>>V[i];
	}
	S[1] = V[1];
	b = 1;
	for (i=2;i<=a;i++) {
		if (S[i-1]+V[i]>=V[i]) {
			S[i] = S[i-1]+V[i];
		} else {
			S[i] = V[i];
			b = i;
		}
		if (S[i]>max) {
			max = S[i];
			uMax = i;
			pMax = b;
		}
	}
		
	g<<max<<" "<<pMax<<" "<<uMax;
	f.close();
	g.close();
	return 0;
}