Cod sursa(job #523820)

Utilizator APOCALYPTODragos APOCALYPTO Data 19 ianuarie 2011 14:33:20
Problema Subsecventa de suma maxima Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
//Apocalypto
//Subsecventa de suma maxima
//varianta cu sume partiale
//
using namespace std;
#include<iostream>
#include<fstream>
#define oo 0x3f3f3f3f
ofstream fout("ssm.out");
int N,a[600006],remi,final=0,fi,ans=-oo,minim=0;
void solve()
{ int  i,minim=oo,scur=0,x,st,end;
	for(i=1;i<=N;i++)
	{   scur=scur+a[i];
		x=scur-minim;
		remi=final+1;
		fi=i;
		if(ans<x)
		{ans=x;
		st=remi;
		end=fi;
		}
        if(minim>scur)
		{
			minim=scur;
			final=i;
		}			
		//minim=min(minim,scur);
	}
	fout<<ans<<" "<<st<<" "<<end<<"\n";
	
}

void cit()
{
	int i;
	ifstream fin("ssm.in");
	fin>>N;
	for(i=1;i<=N;i++)
		 fin>>a[i];
	fin.close();
	
}

int main()
{
	
	cit();
	
	solve();
	
	fout.close();
	return 0;
	
}