145992025-01-20 10:18:42csdavidDinamitcpp17Elfogadva 50/507ms1308 KiB
#include <iostream>
#include <set>
#include <climits>
using namespace std;

int dp[110][110][110], a[110][110];

int main()
{
    int m, n, maxrobbantas, x;
    cin >> n >> m >> maxrobbantas;
    for(int i=1; i<=n; i++){
        for(int j=1; j<=m; j++){
            cin >> a[i][j];
        }
    }
    for(int i=0; i<=n; i++){
        for(int j=0; j<=m; j++){
            for(int k=0; k<=maxrobbantas; k++){
                dp[i][j][k]=INT_MAX;
            }
        }
    }
    for(int k=0; k<=maxrobbantas; k++){
        for(int i=1; i<=n; i++){
            for(int j=1; j<=m; j++){
                x=a[i][j];
                for(int l=0; l<=k; l++){
                    if(i==1&&j==1){
                        dp[i][j][k]=x;
                    }
                    else dp[i][j][k]=min(dp[i][j][k], min(dp[i][j-1][k-l], dp[i-1][j][k-l])+x);
                    x/=2;
                }
            }
        }
    }
    cout << dp[n][m][maxrobbantas];
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/07ms1076 KiB
3Elfogadva2/22ms1076 KiB
4Elfogadva2/22ms1076 KiB
5Elfogadva3/33ms1184 KiB
6Elfogadva3/32ms1080 KiB
7Elfogadva2/26ms1304 KiB
8Elfogadva3/37ms1080 KiB
9Elfogadva2/22ms544 KiB
10Elfogadva2/22ms508 KiB
11Elfogadva3/32ms316 KiB
12Elfogadva3/31ms508 KiB
13Elfogadva2/22ms656 KiB
14Elfogadva3/32ms564 KiB
15Elfogadva2/27ms1076 KiB
16Elfogadva3/37ms1076 KiB
17Elfogadva2/26ms1272 KiB
18Elfogadva3/36ms1076 KiB
19Elfogadva2/27ms1076 KiB
20Elfogadva3/37ms1308 KiB
21Elfogadva2/27ms1260 KiB
22Elfogadva3/36ms1080 KiB