Cod sursa(job #1413374)

Utilizator VAIonescuIonescu Vlad-Andrei VAIonescu Data 1 aprilie 2015 20:43:06
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
/*
 * main.cpp
 *
 *  Created on: Apr 1, 2015
 *      Author: Vlad
 */

#include <cstdio>
using namespace std;

const int nmax=6000000;
int v[nmax+1];

int main(int argc, char **argv) {
	freopen("ssm.in","r",stdin);
	freopen("ssm.out","w",stdout);
	int n;
	scanf("%d",&n);
	for (register int i=1;i<=n;++i){
		scanf("%d",&v[i]);
	}
	int sc,smax,stc,stm,drm;
	sc=smax=v[1];
	stc=stm=drm=1;
	for (register int i=2;i<=n;++i){
		if (sc+v[i]>=v[i]){
			sc+=v[i];
		}
		else{
			sc=v[i];
			stc=i;
		}
		if (sc>smax){
			smax=sc;
			stm=stc;
			drm=i;
		}
	}
	printf("%d %d %d",smax,stm,drm);
}