Cod sursa(job #3345463)

Utilizator teo_mariaa_Tecu Teodora teo_mariaa_ Data 9 martie 2026 19:00:47
Problema Subsecventa de suma maxima Scor 70
Compilator java Status done
Runda Arhiva educationala Marime 1.19 kb
import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new FileReader("ssm.in"));
        PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("ssm.out")));

        int n = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine());

        int[] v = new int[n + 1];

        for (int i = 1; i <= n; i++) {
            v[i] = Integer.parseInt(st.nextToken());
        }

        int[] dp = new int[n + 1];
        int best_start = 1;
        int best_end = 1;
        int temp_start = 1;

        dp[1] = v[1];
        int maxSum = dp[1];

        for (int i = 2; i <= n; i++) {
            if (dp[i - 1] + v[i] < v[i]) {
                dp[i] = v[i];
                temp_start = i;
            } else {
                dp[i] = dp[i - 1] + v[i];
            }

            if (dp[i] > maxSum) {
                maxSum = dp[i];
                best_start = temp_start;
                best_end = i;
            }
        }

        out.println(maxSum + " " + best_start + " " + best_end);

        br.close();
        out.close();
    }
}