Cod sursa(job #1342300)

Utilizator bugyBogdan Vlad bugy Data 13 februarie 2015 19:44:46
Problema Subsecventa de suma maxima Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 1.11 kb
package ssm;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Main {

	public static void main(String[] args) throws IOException {

		BufferedReader bufferReader = new BufferedReader(new FileReader("ssm.in"));
		
		String s = bufferReader.readLine();
		int n = Integer.parseInt(s);
		s = bufferReader.readLine();
		
		bufferReader.close();
		
		String[] numbers = s.split(" ");
				
		int x, min = Integer.MAX_VALUE, max = 0, indMin = 1, ind1 = 0, ind2 = 0;
		int[] v = new int[n+1];
		for (int i = 1; i <= n; i++) {
			x = Integer.parseInt(numbers[i-1]);
			v[i] = v[i-1] + x; 
			if (min > v[i]) {
				min = v[i];
				indMin = i;
			}
			if (max < v[i] - min) {
				max = v[i] - min;
				ind1 = indMin+1;
				ind2 = i;
			}
			if (max < v[i]) {
				max = v[i];
				indMin = ind1 = 1;
			}
		}
		BufferedWriter fout = new BufferedWriter(new FileWriter("ssm.out"));
		fout.write(Integer.toString(max)+" "+Integer.toString(ind1)+" "+Integer.toString(ind2)+"\n");
		fout.close();
	}
}