Cod sursa(job #377169)

Utilizator ChallengeMurtaza Alexandru Challenge Data 23 decembrie 2009 17:19:50
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>

using namespace std;

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

int n,s[MAXN];
FILE *f;

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

int main(void) {
    ifstream fin(InFile);
	fin>>n;
	for(register int i=1;i<=n;++i){
		fin>>s[i];
		s[i]+=s[i-1];
	}

	int n,bestSum=-2000000000,min2,idx,st,sf;
    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;
		}
    }
	
    ofstream fout(OutFile);
    fout<<bestSum<<" "<<st<<" "<<sf;
    fout.close();
	fin.close();
    return 0;
}