199792025-12-30 20:24:03KristófFestés (50 pont)cpp17Wrong answer 0/50165ms12168 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N, M;
    cin >> N >> M;
    vector<long long> R(N);
    for (int i = 0; i < N; i++) cin >> R[i];

    vector<vector<long long>> C(M, vector<long long>(N*(N+1)/2));
    for (int j = 0; j < M; j++)
        for (int k = 0; k < N*(N+1)/2; k++)
            cin >> C[j][k];

    int full = (1 << N) - 1;
    vector<long long> dp(1 << N, LLONG_MAX);
    dp[0] = 0;

    for (int j = 0; j < M; j++) {
        vector<long long> new_dp = dp;
        int idx = 0;
        for (int l = 0; l < N; l++) {
            for (int r = l; r < N; r++) {
                int mask = 0;
                for (int i = l; i <= r; i++) mask |= (1 << i);
                for (int s = 0; s < (1 << N); s++) {
                    if (dp[s] != LLONG_MAX) {
                        new_dp[s | mask] = min(new_dp[s | mask], dp[s] + C[j][idx]);
                    }
                }
                idx++;
            }
        }

        // ALSO consider painting full rows in this column step
        for (int s = 0; s < (1 << N); s++) {
            if (new_dp[s] == LLONG_MAX) continue;
            for (int i = 0; i < N; i++) {
                int ns = s | (1 << i);
                new_dp[ns] = min(new_dp[ns], new_dp[s] + R[i]);
            }
        }

        dp = new_dp;
    }

    cout << dp[full] << "\n";
}
SubtaskSumTestVerdictTimeMemory
base0/50
1Wrong answer0/01ms316 KiB
2Wrong answer0/01ms500 KiB
3Wrong answer0/293ms9012 KiB
4Wrong answer0/21ms316 KiB
5Wrong answer0/32ms316 KiB
6Wrong answer0/216ms1588 KiB
7Wrong answer0/2158ms11952 KiB
8Wrong answer0/2158ms12084 KiB
9Wrong answer0/2157ms12168 KiB
10Wrong answer0/2157ms12084 KiB
11Wrong answer0/2158ms12084 KiB
12Wrong answer0/2144ms11060 KiB
13Wrong answer0/2151ms11296 KiB
14Wrong answer0/250ms5684 KiB
15Wrong answer0/352ms5716 KiB
16Wrong answer0/390ms9012 KiB
17Wrong answer0/286ms8924 KiB
18Wrong answer0/387ms9028 KiB
19Wrong answer0/2143ms10804 KiB
20Wrong answer0/2150ms11576 KiB
21Wrong answer0/2158ms11828 KiB
22Wrong answer0/2158ms12084 KiB
23Wrong answer0/2159ms12084 KiB
24Wrong answer0/2158ms12084 KiB
25Wrong answer0/2165ms12084 KiB