Cod sursa(job #422632)

Utilizator nandoLicker Nandor nando Data 22 martie 2010 22:35:17
Problema Subsecventa de suma maxima Scor 75
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <cstdio>

FILE* fin=fopen("ssm.in","r");
FILE* fout=fopen("ssm.out","w");

#define MAX 6000000

int n,vec[MAX],min;

int main(){
	fscanf(fin,"%d ",&n);
	for(int i=1;i<=n;i++){
		fscanf(fin,"%d ",&vec[i]);
	}
	int min=0,best=-int(2e9),beg,end,idx;
	for(int i=1;i<=n;i++){
		vec[i]+=vec[i-1];
		if(best<vec[i]-min){
			best=vec[i]-min,beg=idx+1,end=i;
		}
		if(vec[i]<min){
			idx=i,min=vec[i];
		}
	}
	fprintf(fout,"%d %d %d",best,beg,end);
	fclose(fin);
	fclose(fout);
	return 0;
}