Pagini recente » Cod sursa (job #1035135) | Cod sursa (job #111048) | Cod sursa (job #192799) | Cod sursa (job #1278199) | Cod sursa (job #1606791)
package subsecventaSumaMaxima;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class SumaMaxima {
private int [] v;
private int n;
public void readData () {
File f = new File("ssm.in");
Scanner sc = null;
try {
sc = new Scanner(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
this.n = sc.nextInt();
this.v = new int[this.n];
for (int i = 0; i < n; i++){
this.v[i] = sc.nextInt();
}
}
public void getSum() {
int [] s = new int[n];
s[0] = v[0];
for (int i = 1; i < n; i++){
if (v[i] > v[i] + s[i-1])
s[i] = v[i];
else
s[i] = v[i] + s[i-1];
}
int max = s[0];
int en = 0;
for (int i = 1; i < n; i++){
if (max < s[i])
{
max = s[i];
en = i;
}
}
int q = en;
while (v[q] != s[q]){
q--;
}
en++;
q++;
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter("ssm.out"));
bw.write(max + " " + q + " " + en);
} catch (IOException e) {
e.printStackTrace();
}
finally {
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
SumaMaxima sm = new SumaMaxima();
sm.readData();
sm.getSum();
}
}