cccc
unknown
c_cpp
a year ago
1.2 kB
17
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;
}
Editor is loading...
Leave a Comment