Cod sursa(job #409998)

Utilizator andreirRoti Andrei andreir Data 3 martie 2010 23:29:07
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream>
#include<algorithm>
#include<vector>
#define minf -1999999999
#define N_max 6000001
using namespace std;

//vector<int>sum;
int sum[N_max];

int main()
{
	int n,i,x,st,sf,bestsum=minf,min=0,best,c;
	//freopen("ssm.in","r",stdin);	freopen("ssm.out","w",stdout);
	ifstream fin("ssm.in");
	ofstream fout("ssm.out");	
	
	fin>>n;
	x=0;st=0;sf=0; //x-start ,y-final
	
	for(i=1;i<=n;++i)
	{
		fin>>c;	sum[i]=c+sum[i-1];
		best=sum[i]-min; 
		if(min>sum[i])		min=sum[i],	x=i;
		if(bestsum<best)	bestsum=best,st=x+1,sf=i;
		else if(bestsum==best && sf<i-x) sf=i;
		
	}
		
	fout<<bestsum<<" "<<x+1<<" "<<sf<<endl;
	return 0;
}