Cod sursa(job #3036590)

Utilizator tudorcaluTudor Calu tudorcalu Data 24 martie 2023 17:01:26
Problema Consecutive Scor 0
Compilator cpp-64 Status done
Runda Arhiva ICPC Marime 0.95 kb
#include <fstream>
#include <bits/stdc++.h>
using namespace std;

vector<int> v;

ifstream f("nucleulvaloros2.in");
ofstream g("nucleulvaloros2.out");

int calc_cost(vector<int>& v, int n) {
    vector<vector<int>> cost(n, vector<int>(n, 0));
    
    for (int i = 0; i < n; i++) {
        cost[i][i] = v[i];
    }
        
    for (int l = 2; l <= n; l++) {
        for (int i = 0; i <= n-l; i++) {
            int j = i+l-1;
            cost[i][j] = INT_MAX;
            for (int k = i; k < j; k++) {
                cost[i][j] = min(cost[i][j], cost[i][k] + cost[k+1][j] + accumulate(v.begin()+i, v.begin()+j+1, 0));
            }
        }
    }
                
    return cost[0][n-1];
}

int main()
{
    int t;
 
        int n;
        f >> n;
        for (int i=1; i<=n; i++)
            {
                int x; f >> x;
                v.push_back(x);
            }
       g << calc_cost(v, n);
    
    return 0;
}