Cod sursa(job #758107)

Utilizator alexandru93moraru alexandru sebastian alexandru93 Data 14 iunie 2012 14:58:23
Problema Subsecventa de suma maxima Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<fstream>
#define maxn 6000001
using namespace std;
int n,front=1,back=1;
int a[maxn],sum[maxn],best[maxn];

ifstream f("ssm.in");
ofstream g("ssm.out");

void citire(){
	f>>n;
	int x;
	for(int i=1;i<=n;i++){
		f>>x;
		sum[i]=sum[i-1]+x;
	}
}

int cautare(){
	int bestSum=-maxn,min=0,k=1;
	for(int i=1;i<=n;i++){
		best[i]=sum[i]-min;
		if(min>best[i]){
			min=best[i];
			k=i+1;
		}
		if(bestSum<best[i]){ 
			bestSum=best[i];
			front=k;
			back=i;
		}
	}
	return bestSum;
}

int main(){
	citire();
	cautare();
	g<<cautare()<<' '<<front<<' '<<back;
	g.close();
	return 0;
}