194192025-12-08 20:39:53KristófDinamitcpp17Accepted 50/5014ms748 KiB
#include <iostream>
#include <vector>
#include <climits>
#include <math.h>
using namespace std;

int main()
{
    int n,m,k;
    cin>>n>>m>>k;
    vector<vector<int>> data(n,vector<int>(m));
    for(int i=0;i<n;i++)
        {
        for(int j=0;j<m;j++)
            {
            cin>>data[i][j];
            }
        }

    vector<vector<vector<int>>> dp(n, vector<vector<int>>(m, vector<int>(k+1,INT_MAX)));
    for(int i=0;i<=k;i++)
        {
        dp[0][0][i]=int(data[0][0]>>i);

        }

    for(int i=0;i<n;i++)
        {
        for(int j=0;j<m;j++)
            {
            if(i==0 && j==0)
                {
                continue;
                }
            for(int p=0;p<=k;p++)
                {
                if(i!=0)
                    {
                    for(int l=0;l<=k;l++)
                        {
                        if(p>=l)
                            dp[i][j][p]=min(dp[i][j][p],dp[i-1][j][l]+int(data[i][j]>>(p-l)));
                        //cout<<int(data[i][j]/pow(2,l))<<" "<<i<<" "<<j<<endl;
                        }
                    }
                if(j!=0)
                    {
                    for(int l=0;l<=k;l++)
                        {
                        if(p>=l)
                            dp[i][j][p]=min(dp[i][j][p],dp[i][j-1][l]+int(data[i][j]>>(p-l)));
                        }

                    }
                }

            //cout<<dp[i][j][k]<<" "<<i<<" "<<j<<endl;
            }
        }
    int ans=INT_MAX;
    for(auto x:dp[n-1][m-1])
        {
        if(x<ans)
            {
            ans=x;
            }
        }
    cout<<ans;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms500 KiB
2Accepted0/014ms664 KiB
3Accepted2/22ms316 KiB
4Accepted2/22ms316 KiB
5Accepted3/32ms316 KiB
6Accepted3/32ms384 KiB
7Accepted2/213ms564 KiB
8Accepted3/314ms564 KiB
9Accepted2/22ms424 KiB
10Accepted2/22ms316 KiB
11Accepted3/32ms316 KiB
12Accepted3/32ms316 KiB
13Accepted2/24ms316 KiB
14Accepted3/34ms316 KiB
15Accepted2/214ms728 KiB
16Accepted3/314ms740 KiB
17Accepted2/214ms736 KiB
18Accepted3/314ms584 KiB
19Accepted2/214ms732 KiB
20Accepted3/314ms648 KiB
21Accepted2/214ms748 KiB
22Accepted3/314ms748 KiB