#include<bits/stdc++.h>
using namespace std;
const int N=2005,M=305;
int n,m,v,e;
int a[N],b[N];
double ans=1e9,k[N],d[M][M],f[N][2];
int main()
{
scanf("%d %d %d %d",&n,&m,&v,&e);
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<=n;++i) scanf("%lf",&k[i]);
for(int i=1,u,v;i<=e;++i) scanf("%d %d %lf",&u,&v,&d[0][0]),d[u][v]=d[v][u]=d[0][0];
for(int i=1;i<=v;++i)
for(int j=1;j<=v;++j)
for(int k=1;k<=v;++k)
d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
for(int j=0;j<=m;++j) f[j][0]=f[j][1]=1e9;
f[0][0]=0;f[1][1]=0;
for(int i=2;i<=n;++i)
{
double v00=d[a[i-1]][a[i]],v10=(1-k[i-1])*d[a[i-1]][a[i]]+k[i-1]*d[b[i-1]][a[i]];
double v01=(1-k[i])*d[a[i-1]][a[i]]+k[i]*d[a[i-1]][b[i]],
v11=(1-k[i-1])*((1-k[i])*d[a[i-1]][a[i]]+k[i]*d[a[i]][b[i]])+k[i-1]*((1-k[i])*d[b[i-1]][a[i]]+k[i]*d[b[i-1]][b[i]]);
for(int j=m;j;--j)
f[j][0]=min(f[j][0]+v00,f[j][1]+v10),
f[j][1]=min(f[j-1][0]+v01,f[j-1][1]+v11);
f[0][0]=f[0][0]+v00;
}
for(int j=0;j<=m;++j) ans=min(ans,min(f[j][0],f[j][1]));
printf("%.2lf",ans);
}