Cod sursa(job #1663073)

Utilizator UTCN_FrunzaUTCN Lazar Nitu Petruta UTCN_Frunza Data 25 martie 2016 15:15:59
Problema Subsecventa de suma maxima Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 1 kb
import java.io.PrintWriter;
import java.util.Scanner;

public class Main {

	private static int[] requests;

	public static void main(String[] args) throws Exception {
		readInput();
		analize(requests);
	}

	private static void readInput() throws Exception {
		try (Scanner scanner = new Scanner("ssm.in")) {
			int numberOfRequests = scanner.nextInt();
			requests = new int[numberOfRequests];
			for (int i = 0; i < numberOfRequests; ++i) {
				requests[i] = scanner.nextInt();
			}
		}
	}

	public static void analize(int[] requests) throws Exception {
		int max = requests[0];
		int prec = requests[0];

		int pstart = 0;
		int start = 0;
		int end = 0;

		for (int i = 1; i < requests.length; i++) {
			if (prec + requests[i] < requests[i]) {
				prec = requests[i];
				pstart = i;
			} else {
				prec += requests[i];
			}
			if (prec > max) {
				max = prec;
				start = pstart;
				end = i;
			}
		}
		PrintWriter stream = new PrintWriter("ssm.out");
		stream.printf("%d %d %d", max, start + 1, end + 1);
	}

}