cccc
#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