155862025-02-20 18:13:32BucsMateDinamitcpp17Elfogadva 50/5037ms1024 KiB
#include <iostream>
#include <vector>

using namespace std;

const long long INF = (long long)1000*1000*1000*1000;

int main()
{
    //cout << INF;
    long long ketto_hatvany[41] = {};
    ketto_hatvany[0] = 1;
    for(int i = 1; i <= 40; i++){
        ketto_hatvany[i] = ketto_hatvany[i-1]*2;
    }

    int N, M, K;
    cin >> N >> M >> K;
    vector<vector<long long>> matrix(N+1, vector<long long>(M+1, INF));
    for(int i = 1; i <= N; i++){
        for(int j = 1; j <= M; j++){
            cin >> matrix[i][j];
        }
    }

    vector<vector<vector<long long>>> dp(N+1, vector<vector<long long>>(M+1, vector<long long>(K+1, INF)));
    dp[1][1][0] = matrix[1][1];
    for(int k = 1; k <= K; k++){
        dp[1][1][k] = matrix[1][1]/ketto_hatvany[k];
    }

    for(int i = 1; i <= N; i++){
        for(int j = 1; j <= M; j++){
            for(int k = 0; k <= K; k++){
                if(i == 1 && j == 1){
                    continue;
                }
                long long min1 = INF, min2 = INF;

                for(int l = 0; l <= k; l++){
                    min1 = min(min1, dp[i-1][j][l] + matrix[i][j]/ketto_hatvany[k-l]);
                }
                for(int l = 0; l <= k; l++){
                    min2 = min(min2, dp[i][j-1][l] + matrix[i][j]/ketto_hatvany[k-l]);
                }
                dp[i][j][k] = min(min1, min2);
            }
        }
    }
    cout << dp[N][M][K] << endl;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/037ms1012 KiB
3Elfogadva2/22ms432 KiB
4Elfogadva2/22ms316 KiB
5Elfogadva3/32ms316 KiB
6Elfogadva3/32ms316 KiB
7Elfogadva2/237ms1020 KiB
8Elfogadva3/337ms1016 KiB
9Elfogadva2/23ms316 KiB
10Elfogadva2/23ms508 KiB
11Elfogadva3/33ms316 KiB
12Elfogadva3/33ms316 KiB
13Elfogadva2/210ms564 KiB
14Elfogadva3/39ms536 KiB
15Elfogadva2/237ms1016 KiB
16Elfogadva3/337ms1020 KiB
17Elfogadva2/237ms1020 KiB
18Elfogadva3/337ms960 KiB
19Elfogadva2/237ms1016 KiB
20Elfogadva3/337ms1016 KiB
21Elfogadva2/237ms1024 KiB
22Elfogadva3/337ms844 KiB