Cod sursa(job #3347749)

Utilizator matei.brestoiuBrestoiu Matei-Dimitri matei.brestoiu Data 18 martie 2026 10:11:47
Problema Parantezare optima de matrici Scor 90
Compilator java Status done
Runda Arhiva educationala Marime 1.18 kb
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Main {
    public long solve(int n, int[] d) {
        int i, j, k, len;
        long [][] dp =  new long[n + 1][n + 1];
        for (i = 1; i <= n; i++) {
            dp[i][i] = 0;
        }
        for (len = 2; len <= n; len++) {
            for (i = 1; i + len - 1 <= n; i++) {
                j = i + len - 1;
                dp[i][j] = Long.MAX_VALUE;
                for (k = i; k < j; k++) {
                    long sol = dp[i][k] + dp[k + 1][j] + (long) d[i - 1] * d[k] * d[j];
                    dp[i][j] = Math.min(dp[i][j], sol);
                }
            }
        }
        return dp[1][n];
    }

    public static void main(String[] args) throws FileNotFoundException {
        Scanner sc = new Scanner(new File("podm.in"));
        int n = sc.nextInt();
        int i;
        int[] d = new int[n + 1];
        for (i = 0; i <= n; i++) {
            d[i] = sc.nextInt();
        }
        PrintWriter pw = new PrintWriter(new File("podm.out"));
        pw.println(new Main().solve(n, d));
        pw.close();
    }
}