题
#include<bits/stdc++.h>
using namespace std;
int q,p,W,V,x,n,w[1001],c[1001],s[1001],f[100001],a[101][101];
int main()
{
cin>>q>>p>>W>>V;
W=min(W,V-1);
for(int i=1;i<=q;i++)
for(int j=1;j<=p;j++)
scanf("%d",&a[i][j]);
for(int i=1;i<=q;i++)
for(int j=1;j<=p;j++)
{
scanf("%d",&x);
if(x>0&&a[i][j]>0)
{
n++;
w[n]=(i+j)*2;
c[n]=a[i][j];
s[n]=x;
}
}
for(int i=1;i<=n;i++)
for(int k=1;k<=s[i];k++)
for(int j=W;j>=w[i];j--)
f[j]=max(f[j],f[j-w[i]]+c[i]);
cout<<f[W]<<endl;
return 0;
}