206202026-01-07 21:06:40hunzombiFestés (50 pont)cpp17Accepted 50/50409ms6664 KiB
#include <bits/stdc++.h>
using namespace std;

const long long INF = 4e18;

int row_cost[4];
int col_cost[100000][4][4];

int main() {

    int n, m;
    cin >> n >> m;

    for (int i=0; i < n; i++) {
        cin >> row_cost[i];
    }

    for (int i=0; i < m; i++) {
        for (int l = 0; l < n; l++) {
            for (int r = l; r < n; r++) {
                cin >> col_cost[i][l][r];
            }
        }
    }

    int full_mask = (1 << n) - 1;
    long long answer = INF;

    for (int mask = 0; mask <= full_mask; mask++) {
        long long cost = 0;
        for (int row = 0; row < n; row++) {
            if (mask & (1 << row)) {
                cost += row_cost[row];
            }
        }

        for(int col = 0; col < m; col++) {
            vector<long long> dp(n + 1, INF);
            dp[0] = 0;

            for (int i = 1; i <= n; i++) {
                if (mask & (1 << (i - 1))) {
                    dp[i] = dp[i - 1];
                } else {
                    for (int l = 0; l <= i - 1; l++) {
                        for (int r = i - 1; r < n; r++) {
                            dp[i] = min(dp[i], dp[l] + col_cost[col][l][r]);
                        }
                    }
                }
            }
            cost += dp[n];
        }
        answer = min(answer, cost);
    }

    cout << answer << '\n';

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms508 KiB
2Accepted0/01ms508 KiB
3Accepted2/2234ms6660 KiB
4Accepted2/21ms316 KiB
5Accepted3/34ms316 KiB
6Accepted2/234ms1000 KiB
7Accepted2/2370ms6664 KiB
8Accepted2/2367ms6496 KiB
9Accepted2/2368ms6660 KiB
10Accepted2/2370ms6464 KiB
11Accepted2/2368ms6636 KiB
12Accepted2/2340ms5940 KiB
13Accepted2/2356ms5940 KiB
14Accepted2/2112ms6452 KiB
15Accepted3/3115ms6444 KiB
16Accepted3/3209ms6664 KiB
17Accepted2/2210ms6452 KiB
18Accepted3/3204ms6452 KiB
19Accepted2/2314ms5940 KiB
20Accepted2/2340ms6348 KiB
21Accepted2/2360ms6524 KiB
22Accepted2/2365ms6524 KiB
23Accepted2/2368ms6452 KiB
24Accepted2/2354ms6452 KiB
25Accepted2/2409ms6532 KiB