Cod sursa(job #634900)

Utilizator johnny2008Diaconu Ion johnny2008 Data 17 noiembrie 2011 21:07:42
Problema Subsecventa de suma maxima Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream>
#include<iostream>
using namespace std;
int n,i,j;
int s[6000001];
int best[6000001][3];
int m=-99999;
int main(){
	ifstream f("ssm.in");
	ofstream g("ssm.out");
	f>>n;
	for(i=1;i<=n;i++){
		best[i][0]=-99999;
		f>>s[i];
		
	}
	best[1][0]=s[1];
	best[1][1]=1;
	best[1][2]=1;
	for(i=2;i<=n;i++){
		
		if(best[i][0]<best[i-1][0]+s[i]){
			best[i][0]=best[i-1][0]+s[i];
			best[i][1]=best[i-1][1];
			best[i][2]=i;
			
		}
		if(best[i][0]<s[i]){
			best[i][0]=s[i];
			best[i][1]=i;
			best[i][2]=i;
		}
		if(m<best[i][0])
			m=i;
		
		
	}
	
	g<<best[m][0]<<" "<<best[m][1]<<" "<<best[m][2]<<'\n';
	return 0;
}