Cod sursa(job #807483)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 4 noiembrie 2012 19:51:01
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>

using namespace std;

ifstream in("ssm.in");
ofstream out("ssm.out");

const int N=6000001;

int v[N];
int n;

void read(){
	in>>n;
	for(int i=1;i<=n;++i){
		in>>v[i];
	}
}

int computessm(){
	int currentsum=0,currentstart=1;
	int maxsum=v[1],beststart=1,bestend=1;
	for(int i=1;i<=n;++i){
		currentsum+=v[i];
		if(currentsum>maxsum){
			maxsum=currentsum;
			bestend=i;
			beststart=currentstart;
		}
		if(currentsum<0){
			currentsum=0;
			currentstart=i+1;
		}
	}
	out<<maxsum<<" "<<beststart<<" "<<bestend;
}

int main(){
	read();
	computessm();
	return 0;
}