#include <bits/stdc++.h>
using namespace std;
int n,m,k,c;
int a[205],b[205];
int p[205],q[205];
int xm[205],xh[205];
int dp[115][1015][115];
int main(){
cin>>n>>m>>k>>c;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
for(int i=1;i<=n;i++){
scanf("%d",&b[i]);
}
for(int i=1;i<=m;i++){
scanf("%d%d",&p[i],&q[i]);
xm[i]=a[p[i]]*a[q[i]];
xh[i]=b[p[i]]+b[q[i]];
}
for(int i=0;i<=m;i++){
for(int j=0;j<=c;j++){
for(int q=0;q<=k;q++){
dp[i][j][q]=-99999999;
}
}
}
dp[0][0][0]=0;
for(int i=1;i<=m;i++){
for(int j=0;j<=c;j++){
for(int q=0;q<=k-1;q++){//此处
dp[i][min(c,j+xh[i])][q+1]=max(dp[i][min(c,j+xh[i])][q+1],dp[i-1][j][q]+xm[i]);
dp[i][j][q]=max(dp[i][j][q],dp[i-1][j][q]);
}
}
}
if(dp[m][c][k]<=0)cout<<-1;
else cout<<dp[m][c][k];
}
标有“此处”这行的q<=k-1改成q<=i-1就过了,但是想不通为什么写k-1过不了,求助