Cod sursa(job #758109)

Utilizator alexandru93moraru alexandru sebastian alexandru93 Data 14 iunie 2012 15:19:37
Problema Subsecventa de suma maxima Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream>
#define maxn 6000001
#define inf 9999999999
using namespace std;
long n,front=1,back=1;
long 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;
	}
}

long cautare(){
	long long bestSum=-inf,min=0,k=1;
	for(long 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;
}