#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n, m, t, e, cnt = 1, f[10000005], w[10000005], c[10000005], s[10000005];
int main() {
cin >> n >> m >> t >> e;
t=min(t,e-1);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> c[cnt];
w[cnt] = 2 * (i + j);
cnt++;
}
}
cnt = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> s[cnt];
cnt++;
}
}
for (int i = 1; i <= n * m; i++) {
if (w[i] > t||c[i] == 0)
continue;
for (int k = 1; k <= s[i]; k++)
for (int j = t; j >= w[i]; j--)
f[j] = max(f[j], f[j - w[i]] + c[i]);
}
cout << f[t];
return 0;
}
数据过水,建议加强!