Cod sursa(job #496263)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 28 octombrie 2010 11:37:19
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream>

using namespace std ;

int st, dr, stmax, drmax, n ;
long long suma, sumamax ;

int main()
{
	int i,x ;
	
	ifstream fin("ssm.in") ;
	fin>>n ;
	fin>>sumamax ;
	stmax = drmax = 1 ;
	if (sumamax < 0) { suma = 0 ; st = dr = 2 ;}
	else { suma = sumamax ; st = 1 ; dr = 1; }
	
	for (i=2 ; i<=n ; i++)
	{
		fin>>x ;
		suma += x ;
		if (suma >= 0) dr = i ;
		if (suma > sumamax)
		{
			sumamax = suma; stmax = st ; drmax = dr ;
		}
		if (suma < 0)
		{
			suma = 0 ;
			st = dr = i+1 ;
		}
	}
	fin.close() ;
	
	ofstream fout("ssm.out") ;
	fout<<sumamax<<" "<<stmax<<" "<<drmax<<"\n" ;
	fout.close() ;
	
	return 0 ;
}