Cod sursa(job #1849270)

Utilizator Alinnkb96Terinte Alin Alinnkb96 Data 17 ianuarie 2017 11:05:38
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
using namespace std;

ifstream f("ssm.in");
ofstream g("ssm.out");

int main()
{
    int n,smax=0,inceput=-1,sfarsit=-1,Smax=0,Inceput=-1,Sfarsit=-1,i,current;
		f>>n>>current;

		if(current>0)
		{
			Smax=current;
			smax=Smax;
			Inceput=0;
			inceput=Inceput;
			Sfarsit=0;
			sfarsit=Sfarsit;
		}

		for(i=1;i<n;i++)
		{
			f>>current;
			smax = smax + current;
			sfarsit = i;
			if(smax > Smax)
			{
				Smax = smax;
				Inceput = inceput;
				Sfarsit = sfarsit;
			}
			if(smax <= 0)
			{
				smax=0;
				inceput=i+1;
				sfarsit=i+1;
			}
			if(smax == Smax)
			{
				if(Sfarsit - Inceput > sfarsit - inceput )
				{
					Sfarsit = sfarsit;
					Inceput = inceput;
				}
			}

		}

		g<<Smax<<" "<<Inceput<<" "<<Sfarsit;

    return 0;
}