Pagini recente » Cod sursa (job #1762877) | Cod sursa (job #1120246) | Istoria paginii preoni-2007/clasament | Cod sursa (job #611568) | Cod sursa (job #1287980)
//http://www.infoarena.ro/probleme-cu-secvente
//Ideea 3 de rezolvare
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class subsumamax {
/*public static void citire_vector(int a[], int n){
Scanner sc = new Scanner(System.in);
for(int i=1;i<=n;i++){
System.out.println("a["+i+"]= ");
a[i]=sc.nextInt();
}
sc.close();
}*/
/*public static void afisare_vector(int a[], int n){
for(int i=1;i<=n;i++)
System.out.print(a[i]+" ");
System.out.println();
}*/
public static void suma_max(int a[], int sum[], int best[], int n) throws IOException{
FileWriter fWriter = new FileWriter ("ssm.out");
PrintWriter pWriter = new PrintWriter (fWriter);
sum[0]=0;
int index=0, bg=0, sf=0;
for(int i=1;i<=n;i++)
sum[i]=a[i]+sum[i-1];
int min = sum[0];
int BestSum = Integer.MIN_VALUE;
for(int i=1;i<=n;i++){
best[i] = sum[i] - min;
if(min>sum[i]) {min = sum[i]; index=i;}
if(best[i]>BestSum) {BestSum = best[i]; bg=index+1; sf=i;}
}
pWriter.print(BestSum + " " + bg + " " + sf);
pWriter.close();
}
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(new File("ssm.in"));
int a[], sum[], best[], n;
n = sc.nextInt();
a = new int[100];
sum = new int[100];
best = new int[100];
for(int i=1;i<=n;i++)
a[i]=sc.nextInt();
//citire_vector(a,n);
suma_max(a,sum,best,n);
sc.close();
}
}