Cod sursa(job #377162)

Utilizator ChallengeMurtaza Alexandru Challenge Data 23 decembrie 2009 16:53:54
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>

const char InFile[] = "ssm.in";
const char OutFile[] = "ssm.out";
const int MAXN = 7000005;

int n,bestSum=-2000000000,min2,idx,st,sf,s[MAXN];
FILE *f;

int Max(int a, int b){
	if(a>b){return a;}else{return b;}
}

int main(void) {
    f=fopen(InFile,"r");
	fscanf(f,"%d",&n);
	for(register int i=1;i<=n;++i){
		fscanf(f,"%d",&s[i]);
		s[i]+=s[i-1];
	}
	fclose(f);

    for(register int i=1;i<=n;++i) {
        if(bestSum<s[i]-min2){
            bestSum=s[i]-min2;
			st=idx+1;
			sf=i;
		}
		if(min2>s[i]){
            min2=s[i],idx=i;
		}
    }
    f=fopen(OutFile,"w");
    fprintf(f,"%d %d %d",bestSum,st,sf);
    fclose(f);
    return 0;
}