Cod sursa(job #516156)

Utilizator diehardNasturel Gabriel diehard Data 23 decembrie 2010 12:10:10
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<fstream>
#include<math.h>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");

int a[6000001],s[6000001];
int main(){
	int i,j,imax,jmax,n,k,smaxj,smini,max,maxa,ii;
	fin>>n;
	s[0]=0;
	maxa=INT_MIN;
	for(i=1;i<=n;i++){
		fin>>a[i];
		s[i]=s[i-1]+a[i];
	}
	smaxj=INT_MIN;
	smini=s[1];ii=1;
	for(i=2;i<=n;i++){
			maxa=s[i]-smini;
			if(maxa>smaxj){
			jmax=i;
			imax=ii;
			smaxj=maxa;
			}
		if(s[i]<smini){
			smini=s[i];
			ii=i;
		}
	}
	
			
		fout<<smaxj<<" "<<imax+1<<" "<<jmax;
	return 0;
}