Cod sursa(job #1663082)

Utilizator UTCN_FrunzaUTCN Lazar Nitu Petruta UTCN_Frunza Data 25 martie 2016 15:21:57
Problema Subsecventa de suma maxima Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 1.03 kb
import java.io.FileInputStream;
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 {
		Scanner scanner = new Scanner(new FileInputStream("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);
	}

}