202202026-01-05 15:29:58szabelrFestés (50 pont)cpp17Hibás válasz 26/50286ms38788 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

const long long INF = 1e18;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n, m;
    cin >> n >> m;
    vector<long long> R(n);
    for (int i = 0; i < n; i++) cin >> R[i];
    vector<vector<vector<long long>>> col_prices(m, vector<vector<long long>>(n + 1, vector<long long>(n + 1)));

    for (int j = 0; j < m; j++) {
        for (int l = 1; l <= n; l++) {
            for (int r = l; r <= n; r++) {
                cin >> col_prices[j][l][r];
            }
        }
    }

    long long best_total = INF;
    for (int g = 0; g < (1 << n); g++) {
        long long cost = 0;
        for (int i = 0; i < n; i++) {
            if ((g >> i) & 1) cost += R[i];
        }
        for (int j = 0; j < m; j++) {
            vector<long long> dp(n + 1, INF);
            dp[0] = 0;
            for (int r = 1; r <= n; r++) {
                if ((g >> (r - 1)) & 1) {
                    dp[r] = dp[r - 1];
                }
                for (int l = 1; l <= r; l++) {
                    dp[r] = min(dp[r], dp[l - 1] + col_prices[j][l][r]);
                }
            }
            cost += dp[n];
        }

        if (cost < best_total) best_total = cost;
    }

    cout << best_total << endl;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base26/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/01ms316 KiB
3Elfogadva2/2155ms32516 KiB
4Hibás válasz0/21ms316 KiB
5Elfogadva3/33ms580 KiB
6Hibás válasz0/225ms4148 KiB
7Elfogadva2/2284ms38788 KiB
8Hibás válasz0/2254ms38708 KiB
9Hibás válasz0/2286ms38696 KiB
10Elfogadva2/2254ms38708 KiB
11Hibás válasz0/2284ms38456 KiB
12Hibás válasz0/2231ms35392 KiB
13Hibás válasz0/2268ms35460 KiB
14Elfogadva2/282ms19764 KiB
15Elfogadva3/390ms19764 KiB
16Elfogadva3/3149ms32308 KiB
17Elfogadva2/2149ms32308 KiB
18Elfogadva3/3165ms32308 KiB
19Elfogadva2/2254ms34868 KiB
20Hibás válasz0/2241ms36660 KiB
21Hibás válasz0/2250ms38196 KiB
22Hibás válasz0/2286ms38708 KiB
23Hibás válasz0/2284ms38720 KiB
24Hibás válasz0/2254ms38708 KiB
25Elfogadva2/2263ms38708 KiB