Cod sursa(job #555046)

Utilizator nickyyLal Daniel Emanuel nickyy Data 15 martie 2011 11:25:15
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>
using namespace std;
#define infinit 1<<30
#define maxn 6000005
int a[maxn],best[maxn];

int main(void)
{	int n,index,end,beg;
	ifstream fin("ssm.in");
	fin>>n;
	for(int i=1;i<=n;i++) fin>>a[i];
	int bestsum=-infinit; index=1;
	for(int i=1;i<=n;i++)
	{	if(a[i]<=best[i-1]+a[i])
			best[i]=best[i-1]+a[i];
		else best[i]=a[i], index=i;
		if(bestsum<best[i]) bestsum=best[i], beg=index, end=i;
	}
	ofstream fout("ssm.out");
	fout<<bestsum<<" "<<beg<<" "<<end<<endl;
	fout.close(); fin.close();
}