Cod sursa(job #1849265)

Utilizator Alinnkb96Terinte Alin Alinnkb96 Data 17 ianuarie 2017 11:00:25
Problema Subsecventa de suma maxima Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 1.18 kb
//package solve;
import java.util.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.lang.*;


public class SumaMax {
	
	
	public static void main(String[] args) 
		throws FileNotFoundException, IOException
	{
		Scanner sc = new Scanner(new File("ssm.in"));
		Writer wr = new FileWriter("ssm.out");
		
		int n,smax=0,inceput=-1,sfarsit=-1,Smax=0,Inceput=-1,Sfarsit=-1,i,current;
		n=sc.nextInt();
		
		current = sc.nextInt();
		if(current>0)
		{
			Smax=current;
			smax=Smax;
			Inceput=0;
			inceput=Inceput;
			Sfarsit=0;
			sfarsit=Sfarsit;
		}
		
		for(i=1;i<n;i++)
		{
			current=sc.nextInt();
			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;
				}
			}
			
		}
		
		wr.write(Smax + " " + Inceput + " " + Sfarsit);
		
		wr.close();
		sc.close();
	}

}