206072026-01-07 19:23:01hunzombiFestés (50 pont)cpp17Time limit exceeded 36/50685ms32508 KiB
#include <bits/stdc++.h>
using namespace std;

const int INF = 4e18;

int main() {
    int N, M;
    cin >> N >> M;

    vector<long long> R(N);
    vector<vector<vector<long long>>> C(M, vector<vector<long long>>(N, vector<long long>(N)));

    for (int i=0; i < N; i++) cin >> R[i];
    for (int i=0; i < M; i++) {
        for (int l=0; l < N; l++) {
            for (int r=l; r < N; r++) {
                cin >> C[i][l][r];
            }
        }
    }

    long long answer = LLONG_MAX;

    int FULL = (1 << N) - 1;

    for (int mask = 0; mask <= FULL; mask++) {
        long long cost = 0;
        for (int i=0; i < N; i++) {
            if (mask & (1 << i)) {
                cost += R[i];
            }
        }
        for (int col = 0; col < M; col++) {
            vector<long long> dp(1 << N, INF);
            dp[mask] = 0;

            for (int cur = 0; cur <= FULL; cur++) {
                if (dp[cur] == INF) continue;

                for (int l = 0; l < N; l++) {
                    for (int r = l; r < N; r++) {
                        int seg = 0;
                        for (int k = l; k <= r; k++) {
                            seg |= (1 << k);
                        }
                        int nxt = cur | seg;
                        dp[nxt] = min(dp[nxt], dp[cur] + C[col][l][r]);
                    }
                }
            }
            cost += dp[FULL];
            if (cost >= answer) break;
        }
        answer = min(answer, cost);
    }

    cout << answer << '\n';

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base36/50
1Accepted0/01ms316 KiB
2Accepted0/01ms508 KiB
3Accepted2/2345ms19764 KiB
4Accepted2/21ms316 KiB
5Accepted3/36ms724 KiB
6Accepted2/257ms3380 KiB
7Accepted2/2561ms32344 KiB
8Accepted2/2560ms32420 KiB
9Accepted2/2572ms32308 KiB
10Time limit exceeded0/2640ms32508 KiB
11Time limit exceeded0/2684ms32308 KiB
12Time limit exceeded0/2624ms29748 KiB
13Time limit exceeded0/2642ms29748 KiB
14Accepted2/2137ms15156 KiB
15Accepted3/3143ms15348 KiB
16Accepted3/3293ms19764 KiB
17Accepted2/2301ms19764 KiB
18Accepted3/3266ms19944 KiB
19Accepted2/2533ms29236 KiB
20Accepted2/2587ms30772 KiB
21Time limit exceeded0/2662ms32076 KiB
22Accepted2/2569ms32504 KiB
23Accepted2/2546ms32308 KiB
24Time limit exceeded0/2606ms32408 KiB
25Time limit exceeded0/2685ms32272 KiB