cccc

 avatar
unknown
c_cpp
2 months ago
1.2 kB
9
Indexable
#include <bits/stdc++.h>
#define ll long long int
#define ull unsigned long long int
#define faster                        \
    ios_base::sync_with_stdio(false); \
    cin.tie(NULL);
using namespace std;

ll dp[202][202+202];
ll n, m, k;
vector<vector<ll>> a;
ll func(int i, int j, ll x)
{
   if(i==n-1 && j==m+m-1){
      return a[i][j]+(k*x);
   }
   if(dp[i][j]!=-1)return dp[i][j];
   ll x1=LONG_LONG_MAX,y=LONG_LONG_MAX,z=LONG_LONG_MAX;
   if(i<n-1){
    x1=func(i+1,j,x)+a[i][j]+(k*x);
   }
   if(j+x<m+m-1){
     y=func(i,j+x+1,x)+a[i][j]+(k*x);
   }
   if(x<m){
    z=func(i,j,x+1);
   }
   return dp[i][j]=min({x1,y,z});
   
}

int main() {
    faster;

    int t;
    cin >> t;
    while (t--) {
           cin >> n >> m >> k;
     vector<vector<ll>>a(n,vector<ll>(2*m,0));
     for (int i = 0; i < n; i++)
     {
        vector<ll>c;
         for (int j = 0; j < m; j++)
         {
            ll x;
            cin>>x;
          a[i][j]=x;
             c.push_back(a[i][j]);

         }
         for (int j = 0; j < m; j++)
         {
            a[i][j+m]=c[j];
         }
         
         
     }
     

     
       
      memset(dp,-1,sizeof(dp));
        
        cout << func(0, 0, 0) << "\n";
    }

    return 0;
}
Leave a Comment