Cod sursa(job #634289)

Utilizator Gaby_mMititelu Gabriel Gaby_m Data 15 noiembrie 2011 21:48:24
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<cstdio>
#include<algorithm>
const int NMAX = 6000001;
using namespace std;
int N;
int values[NMAX];

void solve() {
	if (values == NULL || N < 1) return;
	
	int start,end, auxStart;
	int sum = -int(2e9);	
	int auxSum = 0;
	
	int 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);	
	scanf("%d", &N);
	int i;
	for (i = 0; i < N; i++)
		scanf("%d", &values[i]);
	
	solve(N, values);
	
	return 0;
}