Cod sursa(job #634284)

Utilizator Gaby_mMititelu Gabriel Gaby_m Data 15 noiembrie 2011 21:43:10
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<cstdio>
#define NMAX 6000001
#define INF 0x3f3f3f3f
using namespace std;


void solve(long N, long *values) {
	if (values == NULL || N < 1) return;
	
	long start,end, auxStart;
	long sum = -INF;	
	long auxSum = 0;
	
	long i;	
	for (i = 1; i < N; i++) {
		if (auxSum < 0){ 
			auxSum = values[i]; auxStart = i;
		}
		else
			auxSum += values[i];
		if (sum < auxSum) {
			sum = auxSum; start = auxStart; end = i;
		}
	}	
	printf("%d %d %d\n",sum,start,end);
	
}

int main(){
	freopen("ssm.in","r",stdin);
	freopen("ssm.out","w",stdout);
	long N;
	long values[NMAX];
	scanf("%d", &N);
	long i;
	for (i = 0; i < N; i++)
		scanf("%d", &values[i]);
	
	solve(N, values);
	
	return 0;
}